Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp4645811ybl; Wed, 22 Jan 2020 01:58:58 -0800 (PST) X-Google-Smtp-Source: APXvYqxmu4U7pVX4DKe/qLLomeNNEnOci22aMc/2w8OqZkZoN5RpDNfKwC1Gry5NzN2SkIxpHLdm X-Received: by 2002:a9d:7519:: with SMTP id r25mr6736961otk.284.1579687138702; Wed, 22 Jan 2020 01:58:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579687138; cv=none; d=google.com; s=arc-20160816; b=ePu9uaYAekTsZmgOExGi6sMW7uPPCHmK8QmAGjtBCNg07ZLOlivOTcfbD1jqmLSzdz AV4u9Vr/fLbmGznD6wHJ+j8fndmzJvcCxeEVlrmfDmtrL3Imjs/LB2Xcsf+E9uM8uF06 WY+nV6CGkN+PBmqqSbvfgGW9YBftpXJfUGW6zDehJKjqwaVQschOBJI04BdYQOZuXgPw gTxX58qAq21sGmA1I93pFOvydwrVOMSjSK8ficwGNo1vGhMA7V93M93r3VU5Ocm6DawG U+Q4OpXDQeiXR3JHK1Kpk1XoC9Nnd/ymScssozGEWaPn96IRNbSNYvHolBKPAx6yA5B6 aMmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YGNP8Eif6mbn7zn9eGapV8w4nPfNorKA3hwVbwLI4Pw=; b=dRCDA1AUiyw55maB14pXfZzDgRWUkM5r1VC05k2eO2IV8D1l0tG559IazSFStyJRt6 AR8+20H6E2B/krcUyOcldJ8WbyHknzBNdGe3Q7QOLCyx77BcXDRArbhUVwxLk7n1yxW3 fp/qXSKS6B5OnDcKrgV6QFW4gQPo6wyXeMx97O7PxDZo9FQSjWIiZyLEWjUQC3xNS6Aq JX+Aaut4dVGZ5XrUKWubrkbyIc2gG4WBWFvd8sOTJRy8M3XP1BgxC/HQZPxeNG/aoODF E6WLwUBorrjSyMULcnasJ+YTL/x/+pottTghiE938nmf+Q6SRtJWpn8yYxnBYbdGOIx4 YWSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=eAdy0ych; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h14si20676139oie.98.2020.01.22.01.58.46; Wed, 22 Jan 2020 01:58:58 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=eAdy0ych; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729814AbgAVJbi (ORCPT + 99 others); Wed, 22 Jan 2020 04:31:38 -0500 Received: from mail.kernel.org ([198.145.29.99]:43786 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729762AbgAVJbd (ORCPT ); Wed, 22 Jan 2020 04:31:33 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E998024673; Wed, 22 Jan 2020 09:31:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579685493; bh=tLo/PZQiGCZ4iDPRBI4rrsteQuQ+bsj4OpwZeKsyMNc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eAdy0ychJ+fyhoyFkV+tL9az24e5Dm2xfd6yXvtzzZhZCD2pVt2Go0yV6iBX+laY2 Lih8EO5ds0UBkhlPRXrzu1Q7VcNgO10ExOZhPN9RlaQw1uOlPO4Ngfmq2MAh6dx7iv PEP7rsmBqDDhGO2+WNh3DWwa4g81IGRZGpSG7UJE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, syzbot+219f00fb49874dcaea17@syzkaller.appspotmail.com, Takashi Iwai , Ben Hutchings Subject: [PATCH 4.4 09/76] ALSA: line6: Fix write on zero-sized buffer Date: Wed, 22 Jan 2020 10:28:25 +0100 Message-Id: <20200122092752.509707971@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200122092751.587775548@linuxfoundation.org> References: <20200122092751.587775548@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Takashi Iwai commit 3450121997ce872eb7f1248417225827ea249710 upstream. LINE6 drivers allocate the buffers based on the value returned from usb_maxpacket() calls. The manipulated device may return zero for this, and this results in the kmalloc() with zero size (and it may succeed) while the other part of the driver code writes the packet data with the fixed size -- which eventually overwrites. This patch adds a simple sanity check for the invalid buffer size for avoiding that problem. Reported-by: syzbot+219f00fb49874dcaea17@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai [bwh: Backported to 4.4: Driver doesn't support asymmetrical packet sizes, so only check snd_line6_pcm::max_packet_size] Signed-off-by: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- sound/usb/line6/pcm.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/sound/usb/line6/pcm.c +++ b/sound/usb/line6/pcm.c @@ -529,6 +529,11 @@ int line6_init_pcm(struct usb_line6 *lin usb_rcvisocpipe(line6->usbdev, ep_read), 0), usb_maxpacket(line6->usbdev, usb_sndisocpipe(line6->usbdev, ep_write), 1)); + if (!line6pcm->max_packet_size) { + dev_err(line6pcm->line6->ifcdev, + "cannot get proper max packet size\n"); + return -EINVAL; + } spin_lock_init(&line6pcm->out.lock); spin_lock_init(&line6pcm->in.lock);