From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: [PATCH] ALSA: usb-audio: ensure that cluster header size is enough Date: Sat, 22 Sep 2018 16:38:32 +0300 Message-ID: <20180922133831.GA6792@mwanda> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from aserp2120.oracle.com (aserp2120.oracle.com [141.146.126.78]) by alsa0.perex.cz (Postfix) with ESMTP id 53F742673F4 for ; Sat, 22 Sep 2018 15:38:47 +0200 (CEST) Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Jaroslav Kysela , Ruslan Bilovol Cc: alsa-devel@alsa-project.org, Michael Drake , Greg Kroah-Hartman , linux-usb@vger.kernel.org, kernel-janitors@vger.kernel.org, Takashi Iwai , Jorge Sanjuan List-Id: alsa-devel@alsa-project.org I think we need a check to make sure that "hc_header.wLength" is large enough for a struct struct uac3_cluster_header_descriptor. Fixes: 9a2fe9b801f5 ("ALSA: usb: initial USB Audio Device Class 3.0 support") Signed-off-by: Dan Carpenter diff --git a/sound/usb/stream.c b/sound/usb/stream.c index 67cf849aa16b..f7179ce39a19 100644 --- a/sound/usb/stream.c +++ b/sound/usb/stream.c @@ -968,6 +968,12 @@ snd_usb_get_audioformat_uac3(struct snd_usb_audio *chip, * and request Cluster Descriptor */ wLength = le16_to_cpu(hc_header.wLength); + if (wLength < sizeof(*cluster)) { + dev_err(&dev->dev, + "%u:%d : cluster header size too small %d\n", + iface_no, altno, wLength); + return ERR_PTR(-EIO); + } cluster = kzalloc(wLength, GFP_KERNEL); if (!cluster) return ERR_PTR(-ENOMEM); From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Date: Sat, 22 Sep 2018 13:38:32 +0000 Subject: [PATCH] ALSA: usb-audio: ensure that cluster header size is enough Message-Id: <20180922133831.GA6792@mwanda> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Jaroslav Kysela , Ruslan Bilovol Cc: alsa-devel@alsa-project.org, Michael Drake , Greg Kroah-Hartman , linux-usb@vger.kernel.org, kernel-janitors@vger.kernel.org, Takashi Iwai , Jorge Sanjuan I think we need a check to make sure that "hc_header.wLength" is large enough for a struct struct uac3_cluster_header_descriptor. Fixes: 9a2fe9b801f5 ("ALSA: usb: initial USB Audio Device Class 3.0 support") Signed-off-by: Dan Carpenter diff --git a/sound/usb/stream.c b/sound/usb/stream.c index 67cf849aa16b..f7179ce39a19 100644 --- a/sound/usb/stream.c +++ b/sound/usb/stream.c @@ -968,6 +968,12 @@ snd_usb_get_audioformat_uac3(struct snd_usb_audio *chip, * and request Cluster Descriptor */ wLength = le16_to_cpu(hc_header.wLength); + if (wLength < sizeof(*cluster)) { + dev_err(&dev->dev, + "%u:%d : cluster header size too small %d\n", + iface_no, altno, wLength); + return ERR_PTR(-EIO); + } cluster = kzalloc(wLength, GFP_KERNEL); if (!cluster) return ERR_PTR(-ENOMEM); From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: ALSA: usb-audio: ensure that cluster header size is enough From: Dan Carpenter Message-Id: <20180922133831.GA6792@mwanda> Date: Sat, 22 Sep 2018 16:38:32 +0300 To: Jaroslav Kysela , Ruslan Bilovol Cc: Takashi Iwai , Jorge Sanjuan , Greg Kroah-Hartman , Michael Drake , alsa-devel@alsa-project.org, linux-usb@vger.kernel.org, kernel-janitors@vger.kernel.org List-ID: SSB0aGluayB3ZSBuZWVkIGEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgImhjX2hlYWRlci53TGVu Z3RoIiBpcyBsYXJnZQplbm91Z2ggZm9yIGEgc3RydWN0IHN0cnVjdCB1YWMzX2NsdXN0ZXJfaGVh ZGVyX2Rlc2NyaXB0b3IuCgpGaXhlczogOWEyZmU5YjgwMWY1ICgiQUxTQTogdXNiOiBpbml0aWFs IFVTQiBBdWRpbyBEZXZpY2UgQ2xhc3MgMy4wIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBEYW4g Q2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+CgpkaWZmIC0tZ2l0IGEvc291bmQv dXNiL3N0cmVhbS5jIGIvc291bmQvdXNiL3N0cmVhbS5jCmluZGV4IDY3Y2Y4NDlhYTE2Yi4uZjcx NzljZTM5YTE5IDEwMDY0NAotLS0gYS9zb3VuZC91c2Ivc3RyZWFtLmMKKysrIGIvc291bmQvdXNi L3N0cmVhbS5jCkBAIC05NjgsNiArOTY4LDEyIEBAIHNuZF91c2JfZ2V0X2F1ZGlvZm9ybWF0X3Vh YzMoc3RydWN0IHNuZF91c2JfYXVkaW8gKmNoaXAsCiAJICogYW5kIHJlcXVlc3QgQ2x1c3RlciBE ZXNjcmlwdG9yCiAJICovCiAJd0xlbmd0aCA9IGxlMTZfdG9fY3B1KGhjX2hlYWRlci53TGVuZ3Ro KTsKKwlpZiAod0xlbmd0aCA8IHNpemVvZigqY2x1c3RlcikpIHsKKwkJZGV2X2VycigmZGV2LT5k ZXYsCisJCQkiJXU6JWQgOiBjbHVzdGVyIGhlYWRlciBzaXplIHRvbyBzbWFsbCAlZFxuIiwKKwkJ CWlmYWNlX25vLCBhbHRubywgd0xlbmd0aCk7CisJCXJldHVybiBFUlJfUFRSKC1FSU8pOworCX0K IAljbHVzdGVyID0ga3phbGxvYyh3TGVuZ3RoLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNsdXN0ZXIp CiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo=