From nobody Thu Apr 25 13:36:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1620048699; cv=none; d=zohomail.com; s=zohoarc; b=Zs19Tz+3Rwt08OMSVoJIkxsFh7lx5JooWbYmOzHqk5IANf2jyh8L7nbyz5UR2UNReuwoFmKV9b8aQ667NkGr4AAfrw7tTerWHtT2hfX0BNpjT9GEid3KcrxuUymvxlRuHRiCSw1PvXeIdAKww7izYe1vlRfcqumbTL2mtgFGVpU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620048699; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IIQWoOj7e0dsIa7hkFCElsSBHzeF9k3Da95taQOwAFU=; b=Gb0Wgn5Mbxirt/UYBniHFvWX20re9G0l5Z9Uj1hMJ6H+ihEhICtjh9dJWMvGL9LkdWlC7D9K2LZEtOrV3XjotZ58jkqjjiSiGhszUO+G2MRmU0VJFzZs3O3hALwcs1tI3deuYYjIyx4nfsz8DLPI/Qq0d4kOs8Ut6QpQZ/ARVek= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16200486995164.327757170331552; Mon, 3 May 2021 06:31:39 -0700 (PDT) Received: from localhost ([::1]:45058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldYfg-0006O2-C5 for importer@patchew.org; Mon, 03 May 2021 09:31:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42732) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdb-0005En-RJ for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:27 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:22985) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdZ-0000Zc-0O for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:26 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-483-aewLHL65POCH3yrH2J855g-1; Mon, 03 May 2021 09:29:22 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4CFA31008060; Mon, 3 May 2021 13:29:21 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-203.ams2.redhat.com [10.36.112.203]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 27AB9100F49F; Mon, 3 May 2021 13:29:17 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 9DCA61CEC735; Mon, 3 May 2021 15:29:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620048564; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IIQWoOj7e0dsIa7hkFCElsSBHzeF9k3Da95taQOwAFU=; b=RWRgEs+yvehCFaNEEgEt13WRee/bo5sdZ7OGjAWd5sddDAfZbK8GNjPTKLP03cpThGtx4r JcB/jJYe4XtgO0VY/at6mXpse4/cpZbm7DI5Ov0zrr4Dwyhk9HkzAIUNEw6qob3Wl21t5/ 2P4c8+ic0mKmTd9bFl3/c9wJtDDmrAY= X-MC-Unique: aewLHL65POCH3yrH2J855g-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v2 1/5] usb/hid: avoid dynamic stack allocation Date: Mon, 3 May 2021 15:29:11 +0200 Message-Id: <20210503132915.2335822-2-kraxel@redhat.com> In-Reply-To: <20210503132915.2335822-1-kraxel@redhat.com> References: <20210503132915.2335822-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.698, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mcascell@redhat.com, remy.noel@blade-group.com, philmd@redhat.com, Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Use autofree heap allocation instead. Signed-off-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/usb/dev-hid.c | 2 +- hw/usb/dev-wacom.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c index fc39bab79f94..1c7ae97c3033 100644 --- a/hw/usb/dev-hid.c +++ b/hw/usb/dev-hid.c @@ -656,7 +656,7 @@ static void usb_hid_handle_data(USBDevice *dev, USBPack= et *p) { USBHIDState *us =3D USB_HID(dev); HIDState *hs =3D &us->hid; - uint8_t buf[p->iov.size]; + g_autofree uint8_t *buf =3D g_malloc(p->iov.size); int len =3D 0; =20 switch (p->pid) { diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c index b59504863509..ed687bc9f1eb 100644 --- a/hw/usb/dev-wacom.c +++ b/hw/usb/dev-wacom.c @@ -301,7 +301,7 @@ static void usb_wacom_handle_control(USBDevice *dev, US= BPacket *p, static void usb_wacom_handle_data(USBDevice *dev, USBPacket *p) { USBWacomState *s =3D (USBWacomState *) dev; - uint8_t buf[p->iov.size]; + g_autofree uint8_t *buf =3D g_malloc(p->iov.size); int len =3D 0; =20 switch (p->pid) { --=20 2.30.2 From nobody Thu Apr 25 13:36:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1620048837; cv=none; d=zohomail.com; s=zohoarc; b=TecjjUEzxBUYMsgkn2siwLJt1+9Bmv2XCdgxV7t5SpzPkGPEgNkMFwYkVraQ5Q0C8bdgKWq0Yagi58+zDNCgvuXpkA9OGelvr8LO2mwiDR3zSinsjRlZgBOG2ruIapmr9naZxNC/SelOnwhnkDBTzCSNk8dRAPYcnvF3VslRsy8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620048837; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/bsFK+IWf7EJpUXwApvAORdouNb5iE03uH8O2HimJ4M=; b=FmkzCfVtRrdXyw0KqaGebi274Psa1HBY0hva2LeICDX7++4xVJsMhs6RJzIufu0SxAgKNYZ8gv+X4wM0zLLYBRoBp6MEnLfyJDzCM7R2w3O4ZUWXXlg+sgYWcE7PqrWu/xwpjDWakt8QzdRrD9UnOeKRPBLsQa9bwcDlM9Q3ugA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620048837207146.40648397578173; Mon, 3 May 2021 06:33:57 -0700 (PDT) Received: from localhost ([::1]:49818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldYhv-0008WA-RF for importer@patchew.org; Mon, 03 May 2021 09:33:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42752) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdc-0005F1-Et for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:28 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:31914) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYda-0000bF-Ht for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:28 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-458-sOc2Vn3DPj-mmxiGCaJYbA-1; Mon, 03 May 2021 09:29:24 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8F15319253C3; Mon, 3 May 2021 13:29:23 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-203.ams2.redhat.com [10.36.112.203]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 39B941001901; Mon, 3 May 2021 13:29:23 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A8B361CEC736; Mon, 3 May 2021 15:29:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620048566; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/bsFK+IWf7EJpUXwApvAORdouNb5iE03uH8O2HimJ4M=; b=KoWJClprPHvW67on/+I3m/Da7vPsoN7EEcfC3ZVuLyjNtoK8p8hJF7GU7NZz6e73uWMa59 m41kzxo5QqUtft89U0v9yUBrnpUr1ewI18xbcGq44EbcIuKmP12PM/y6qKqYYDVnc8v5VZ wrR03RknNQ2f4ztdKnID9QIMpGdmK/c= X-MC-Unique: sOc2Vn3DPj-mmxiGCaJYbA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v2 2/5] usb/redir: avoid dynamic stack allocation (CVE-2021-3527) Date: Mon, 3 May 2021 15:29:12 +0200 Message-Id: <20210503132915.2335822-3-kraxel@redhat.com> In-Reply-To: <20210503132915.2335822-1-kraxel@redhat.com> References: <20210503132915.2335822-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.698, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mcascell@redhat.com, remy.noel@blade-group.com, philmd@redhat.com, Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Use autofree heap allocation instead. Fixes: 4f4321c11ff ("usb: use iovecs in USBPacket") Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Gerd Hoffmann Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/usb/redirect.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 17f06f34179a..6a75b0dc4ab2 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -620,7 +620,7 @@ static void usbredir_handle_iso_data(USBRedirDevice *de= v, USBPacket *p, .endpoint =3D ep, .length =3D p->iov.size }; - uint8_t buf[p->iov.size]; + g_autofree uint8_t *buf =3D g_malloc(p->iov.size); /* No id, we look at the ep when receiving a status back */ usb_packet_copy(p, buf, p->iov.size); usbredirparser_send_iso_packet(dev->parser, 0, &iso_packet, @@ -818,7 +818,7 @@ static void usbredir_handle_bulk_data(USBRedirDevice *d= ev, USBPacket *p, usbredirparser_send_bulk_packet(dev->parser, p->id, &bulk_packet, NULL, 0); } else { - uint8_t buf[size]; + g_autofree uint8_t *buf =3D g_malloc(size); usb_packet_copy(p, buf, size); usbredir_log_data(dev, "bulk data out:", buf, size); usbredirparser_send_bulk_packet(dev->parser, p->id, @@ -923,7 +923,7 @@ static void usbredir_handle_interrupt_out_data(USBRedir= Device *dev, USBPacket *p, uint8_t ep) { struct usb_redir_interrupt_packet_header interrupt_packet; - uint8_t buf[p->iov.size]; + g_autofree uint8_t *buf =3D g_malloc(p->iov.size); =20 DPRINTF("interrupt-out ep %02X len %zd id %"PRIu64"\n", ep, p->iov.size, p->id); --=20 2.30.2 From nobody Thu Apr 25 13:36:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1620048711; cv=none; d=zohomail.com; s=zohoarc; b=HRtAZ9mvG+qYsRKdb11m63usjia+b1dXEm/TP03SMASeyPaxatEbgJ4iiE+bP8C7+FIst45/0taLEzrCq3JvpDlB1SF3K/a5KmXLTHJcjePJN5A6FqvDuMtHdHxP/kZqinEXfwuByc5gKwT78z0Xeija7CTRaFmwpa6tH4HroBM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620048711; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mrdxAKjUzr/byGv5e5o5W5r22e+2bwN+g67LOvTBIYs=; b=GKn+4QWMpOwQ5VB8WEXVm87ryN6xXorf3cuto0ZxKjiFeLx3oBGjTdFw6m/uMifkweeXLaxIQJmbexhGY2BNdAp4zA63PoU7q/tVPnGjwn9tG71BW0L5DJq+2za2Iw2W1Z6EuiTva534+tvSeNX9dMhlPXsVKJmrEMYlmmRHo7g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620048711173515.0793333748001; Mon, 3 May 2021 06:31:51 -0700 (PDT) Received: from localhost ([::1]:45666 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldYfs-0006mK-3m for importer@patchew.org; Mon, 03 May 2021 09:31:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42778) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdg-0005La-Of for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:32 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:45279) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdf-0000dr-44 for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:32 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-394-pI0xxGGfP4a7pPipsLP-hA-1; Mon, 03 May 2021 09:29:29 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8147F19253C0; Mon, 3 May 2021 13:29:28 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-203.ams2.redhat.com [10.36.112.203]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D8BDC503F0; Mon, 3 May 2021 13:29:23 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id B39F51CEC737; Mon, 3 May 2021 15:29:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620048570; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mrdxAKjUzr/byGv5e5o5W5r22e+2bwN+g67LOvTBIYs=; b=dUlw7kpF4J+W/q6tLLMPFHhfZNxUVkRszJK7NoNJu6t0cik/RFM4weY+T8Jutnbvb+PEAr ND3aDiwbCdeeP4Eemm1gG1N07BIbu9v2h7B3earOc57LSoWsA6TiJbJ1M2lKEF9IZckmDB 1yJaulJRob4DDXru/O9ZTVOrq2ajoXo= X-MC-Unique: pI0xxGGfP4a7pPipsLP-hA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v2 3/5] usb/mtp: avoid dynamic stack allocation Date: Mon, 3 May 2021 15:29:13 +0200 Message-Id: <20210503132915.2335822-4-kraxel@redhat.com> In-Reply-To: <20210503132915.2335822-1-kraxel@redhat.com> References: <20210503132915.2335822-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.698, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mcascell@redhat.com, remy.noel@blade-group.com, philmd@redhat.com, Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Use autofree heap allocation instead. Signed-off-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/usb/dev-mtp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c index bbb827434482..2a895a73b083 100644 --- a/hw/usb/dev-mtp.c +++ b/hw/usb/dev-mtp.c @@ -907,7 +907,8 @@ static MTPData *usb_mtp_get_object_handles(MTPState *s,= MTPControl *c, MTPObject *o) { MTPData *d =3D usb_mtp_data_alloc(c); - uint32_t i =3D 0, handles[o->nchildren]; + uint32_t i =3D 0; + g_autofree uint32_t *handles =3D g_new(uint32_t, o->nchildren); MTPObject *iter; =20 trace_usb_mtp_op_get_object_handles(s->dev.addr, o->handle, o->path); --=20 2.30.2 From nobody Thu Apr 25 13:36:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1620048965; cv=none; d=zohomail.com; s=zohoarc; b=lMFVsWOIJPjhv4kimjiIREHehbNFLYadF1YomZoDZoZhdyORgIxyHHyG+ZXyMTLx2n9MVDM6IkXmlhT8SqxKNb6n4jTVvL42zAguKpoJuqG0vbQkK8J3udKdvGAFXOCHlOLoqhlurOEjfRoamgVTyIVVB30+lYgqgCUEOcywzEw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620048965; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=n4IuX5mGBxhSoUNBaK2iWkP/sAnynBLyfTGs307GZHs=; b=G9g3OJRj6emrWNTi+MiYHWoIO0adW9In3dubrTB6EWoFP1p6XweRMYF9iBLTz5T+BJkjsPvKCh3mtozyGgVBcEMyUk8MN8VC3ze3GOdLKWyJq4hf9O3Os3aZVZp0r2kQlhqvmzg6TPZchyoYuFFJ2GhQCoG/CpcjAvdn2JEi5PU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620048965070198.82599235076657; Mon, 3 May 2021 06:36:05 -0700 (PDT) Received: from localhost ([::1]:53078 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldYjz-0001Uc-Uo for importer@patchew.org; Mon, 03 May 2021 09:36:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdi-0005OG-7b for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:36047) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdf-0000dt-6T for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:33 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-115-fzzJx5HsMX6sMFZKHrDENw-1; Mon, 03 May 2021 09:29:27 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 13ECA802E9F; Mon, 3 May 2021 13:29:26 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-203.ams2.redhat.com [10.36.112.203]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B96191001901; Mon, 3 May 2021 13:29:25 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id BE4231CEC738; Mon, 3 May 2021 15:29:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620048570; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=n4IuX5mGBxhSoUNBaK2iWkP/sAnynBLyfTGs307GZHs=; b=KiOQJ7zHFh8bOuNVodO9qVlt4ERx3HJNiHeZ0+LOGzHXToRHRDpz3h+EAHyDXGRGIvcyEc L3bFipdnhBsOj35RjfjkOryWd5qqF2aOiFqKLWNruXbWhcyIDcfFKXKddV93GrdVMe0ilH IDNUeybDXJdP0C+5yp5ijR9s/jxlVog= X-MC-Unique: fzzJx5HsMX6sMFZKHrDENw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v2 4/5] usb/xhci: sanity check packet size Date: Mon, 3 May 2021 15:29:14 +0200 Message-Id: <20210503132915.2335822-5-kraxel@redhat.com> In-Reply-To: <20210503132915.2335822-1-kraxel@redhat.com> References: <20210503132915.2335822-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.698, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mcascell@redhat.com, remy.noel@blade-group.com, philmd@redhat.com, Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Make sure the usb packet size is within the bounds of the endpoint configuration. Signed-off-by: Gerd Hoffmann --- hw/usb/hcd-xhci.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index 46212b1e695a..7acfb8137bc9 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -1568,6 +1568,11 @@ static int xhci_setup_packet(XHCITransfer *xfer) qemu_sglist_destroy(&xfer->sgl); return -1; } + if (xfer->packet.iov.size > ep->max_packet_size) { + usb_packet_unmap(&xfer->packet, &xfer->sgl); + qemu_sglist_destroy(&xfer->sgl); + return -1; + } DPRINTF("xhci: setup packet pid 0x%x addr %d ep %d\n", xfer->packet.pid, ep->dev->addr, ep->nr); return 0; --=20 2.30.2 From nobody Thu Apr 25 13:36:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1620049101; cv=none; d=zohomail.com; s=zohoarc; b=AnZS+I1ko9n5YyUjfqzfSeW9peOHEtlxsiY9J5ywjlfUbuRS0/GqeuinhVbnTxy9jgGFDbE5WCiVWaD3OV3vH0moGZJpy7s/2KTGbCnmRwVH6A/2dN1va6pTdiXTsGkC0YHKKWBz9RMAy84u1SUpFePZ5m+dVTM2h1l2t5FkfiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620049101; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=beuHHcBhpTIhiCGL3twD1YqDRs3Mka47JpkK6KzdabU=; b=PWoVmWWIr9LQZui/1MZGdVw77HwnWcgGGZEVsRVkdjCo8JADDnAHMkSHcIw827ArUbLj1fMn8Tc8qSELu0DQqpUH1OnfLHAe9lPHNyRmu75RmCNAkZoMJjDJQSOHyssdubXLSO/R/nmrpWSyzqH+IMa6HVTvaT2/VmpQNHO0jM8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620049101526194.72830054334725; Mon, 3 May 2021 06:38:21 -0700 (PDT) Received: from localhost ([::1]:58590 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldYmC-0003pL-FO for importer@patchew.org; Mon, 03 May 2021 09:38:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42802) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdj-0005Qg-7V for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:25428) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldYdf-0000dq-99 for qemu-devel@nongnu.org; Mon, 03 May 2021 09:29:34 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-594-Reld-eP5OT69KMf9rDLkPQ-1; Mon, 03 May 2021 09:29:29 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 798C58015BA; Mon, 3 May 2021 13:29:28 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-203.ams2.redhat.com [10.36.112.203]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2EAE9369A; Mon, 3 May 2021 13:29:28 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id C91C01CEC739; Mon, 3 May 2021 15:29:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620048570; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=beuHHcBhpTIhiCGL3twD1YqDRs3Mka47JpkK6KzdabU=; b=NKlpKSgnWq4NSm8DzJHOMAR+LlAr9Vm+2l9+6eEC+zcF1D2aYhzY0Z7/xoGJZ8QPiNyjyq z6I7Xdgcuhxz/8agZtnTXrSMrAuwVFL7HsY1vxje4ehX0PueU7nMkQGlGtDZBEUlgA09VS GvHgHNHyVjd6v15Nj+n2BrD2wLNjiRw= X-MC-Unique: Reld-eP5OT69KMf9rDLkPQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v2 5/5] usb: limit combined packets to 1 MiB Date: Mon, 3 May 2021 15:29:15 +0200 Message-Id: <20210503132915.2335822-6-kraxel@redhat.com> In-Reply-To: <20210503132915.2335822-1-kraxel@redhat.com> References: <20210503132915.2335822-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.698, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mcascell@redhat.com, remy.noel@blade-group.com, philmd@redhat.com, Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" usb-host and usb-redirect try to batch bulk transfers by combining many small usb packets into a single, large transfer request, to reduce the overhead and improve performance. This patch adds a size limit of 1 MiB for those combined packets to restrict the host resources the guest can bind that way. Signed-off-by: Gerd Hoffmann --- hw/usb/combined-packet.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/usb/combined-packet.c b/hw/usb/combined-packet.c index 5d57e883dcb5..e56802f89a32 100644 --- a/hw/usb/combined-packet.c +++ b/hw/usb/combined-packet.c @@ -171,7 +171,9 @@ void usb_ep_combine_input_packets(USBEndpoint *ep) if ((p->iov.size % ep->max_packet_size) !=3D 0 || !p->short_not_ok= || next =3D=3D NULL || /* Work around for Linux usbfs bulk splitting + migration = */ - (totalsize =3D=3D (16 * KiB - 36) && p->int_req)) { + (totalsize =3D=3D (16 * KiB - 36) && p->int_req) || + /* Next package may grow combined package over 1MiB */ + totalsize > 1 * MiB - ep->max_packet_size) { usb_device_handle_data(ep->dev, first); assert(first->status =3D=3D USB_RET_ASYNC); if (first->combined) { --=20 2.30.2