From nobody Mon May 12 07:34:15 2025 Delivered-To: importer2@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1699545796857934.1709242969447; Thu, 9 Nov 2023 08:03:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r17U6-0005xf-K3; Thu, 09 Nov 2023 11:02:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r17U4-0005ug-KK for qemu-devel@nongnu.org; Thu, 09 Nov 2023 11:02:21 -0500 Received: from vps-vb.mhejs.net ([37.28.154.113]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r17U2-0000si-RO for qemu-devel@nongnu.org; Thu, 09 Nov 2023 11:02:20 -0500 Received: from MUA by vps-vb.mhejs.net with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r17Tz-000351-0e; Thu, 09 Nov 2023 17:02:15 +0100 From: "Maciej S. Szmigiero" To: qemu-devel@nongnu.org Cc: Peter Maydell , David Hildenbrand Subject: [PATCH] hv-balloon: avoid alloca() usage Date: Thu, 9 Nov 2023 17:02:08 +0100 Message-ID: <3b2253d199165648b958570d6c4db86d6ced139d.1699545634.git.maciej.szmigiero@oracle.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=37.28.154.113; envelope-from=mail@maciej.szmigiero.name; helo=vps-vb.mhejs.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZM-MESSAGEID: 1699545798105100001 Content-Type: text/plain; charset="utf-8" From: "Maciej S. Szmigiero" alloca() is frowned upon, replace it with g_malloc0() + g_autofree. Signed-off-by: Maciej S. Szmigiero Reviewed-by: David Hildenbrand Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/hyperv/hv-balloon.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hw/hyperv/hv-balloon.c b/hw/hyperv/hv-balloon.c index 66f297c1d7e3..a4b4bde0a1e9 100644 --- a/hw/hyperv/hv-balloon.c +++ b/hw/hyperv/hv-balloon.c @@ -365,7 +365,7 @@ static void hv_balloon_unballoon_posting(HvBalloon *bal= loon, StateDesc *stdesc) PageRangeTree dtree; uint64_t *dctr; bool our_range; - struct dm_unballoon_request *ur; + g_autofree struct dm_unballoon_request *ur =3D NULL; size_t ur_size =3D sizeof(*ur) + sizeof(ur->range_array[0]); PageRange range; bool bret; @@ -387,8 +387,7 @@ static void hv_balloon_unballoon_posting(HvBalloon *bal= loon, StateDesc *stdesc) assert(dtree.t); assert(dctr); =20 - ur =3D alloca(ur_size); - memset(ur, 0, ur_size); + ur =3D g_malloc0(ur_size); ur->hdr.type =3D DM_UNBALLOON_REQUEST; ur->hdr.size =3D ur_size; ur->hdr.trans_id =3D balloon->trans_id; @@ -530,7 +529,7 @@ static void hv_balloon_hot_add_posting(HvBalloon *ballo= on, StateDesc *stdesc) PageRange *hot_add_range =3D &balloon->hot_add_range; uint64_t *current_count =3D &balloon->ha_current_count; VMBusChannel *chan =3D hv_balloon_get_channel(balloon); - struct dm_hot_add *ha; + g_autofree struct dm_hot_add *ha =3D NULL; size_t ha_size =3D sizeof(*ha) + sizeof(ha->range); union dm_mem_page_range *ha_region; uint64_t align, chunk_max_size; @@ -559,9 +558,8 @@ static void hv_balloon_hot_add_posting(HvBalloon *ballo= on, StateDesc *stdesc) */ *current_count =3D MIN(hot_add_range->count, chunk_max_size); =20 - ha =3D alloca(ha_size); + ha =3D g_malloc0(ha_size); ha_region =3D &(&ha->range)[1]; - memset(ha, 0, ha_size); ha->hdr.type =3D DM_MEM_HOT_ADD_REQUEST; ha->hdr.size =3D ha_size; ha->hdr.trans_id =3D balloon->trans_id;