From nobody Wed May 8 07:43:14 2024 Delivered-To: importer@patchew.org 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; 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+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1585030798; cv=none; d=zohomail.com; s=zohoarc; b=QfFb6PND7yvQgcReR3yBZx3gLomOVbHKY6c9gVopMXEuCqb5C552aE1McA3Il0KHa6cLDuLu+wdQ8AAtEEIyFYYM2iDqPuSWBElRY7Bm2ZP4ieZ6gwCevIxg0jaMMLvg7DvBDU7U/B0rnMyFlgPq5WhOMeKN0NAvBtFfDJY42nw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585030798; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=xF8pM/ELtsPhuLbAcMCoFhRP6Opzx+s2Mh8/adarXxk=; b=GYTdflcs1ndZhhjA7+Ub9mEb/yqRennBKT16avuTFAvix3DZkJ1zF0iuiDu+cwHFjvlooJjmGCM7FmBmUF6ICdLU+1WFMoaUDmWwjXnliRsb1yG0DuPaxzIuo9ty0VxzgtJy8KxMbjLKN5/B20gb0ZkgPDiWDHOu5KzNn0VQkQQ= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15850307980821000.4790476860953; Mon, 23 Mar 2020 23:19:58 -0700 (PDT) Received: from localhost ([::1]:43604 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGcup-0002Em-P7 for importer@patchew.org; Tue, 24 Mar 2020 02:19:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46082) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGcu6-0001q9-Fm for qemu-devel@nongnu.org; Tue, 24 Mar 2020 02:19:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGcu5-0000ng-Ck for qemu-devel@nongnu.org; Tue, 24 Mar 2020 02:19:10 -0400 Received: from mailout04.t-online.de ([194.25.134.18]:34342) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jGcu5-0000lT-6t for qemu-devel@nongnu.org; Tue, 24 Mar 2020 02:19:09 -0400 Received: from fwd06.aul.t-online.de (fwd06.aul.t-online.de [172.20.26.150]) by mailout04.t-online.de (Postfix) with SMTP id 392CC41BADFA; Tue, 24 Mar 2020 07:19:06 +0100 (CET) Received: from linpower.localnet (TWfXKUZSgh-qC9Pqk75CBSp5AMWVhwG5RYzIRcAu35kWBp1YYHu1gDzjUk6inBgQ7S@[93.236.151.78]) by fwd06.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1jGcts-2IEPPU0; Tue, 24 Mar 2020 07:18:56 +0100 Received: by linpower.localnet (Postfix, from userid 1000) id DA3E7200F49; Tue, 24 Mar 2020 07:18:55 +0100 (CET) From: =?UTF-8?q?Volker=20R=C3=BCmelin?= To: Gerd Hoffmann Subject: [PATCH] hw/audio/fmopl: fix segmentation fault Date: Tue, 24 Mar 2020 07:18:55 +0100 Message-Id: <20200324061855.5951-1-vr_qemu@t-online.de> X-Mailer: git-send-email 2.16.4 MIME-Version: 1.0 X-ID: TWfXKUZSgh-qC9Pqk75CBSp5AMWVhwG5RYzIRcAu35kWBp1YYHu1gDzjUk6inBgQ7S X-TOI-MSGID: 61372906-d5a0-48ce-8152-3dbf625e179d Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 194.25.134.18 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: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , QEMU Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Current code allocates the memory for ENV_CURVE too late. Move allocation to OPLOpenTable() and deallocation to OPLCloseTable(). To reproduce the bug start qemu with -soundhw adlib. Fixes 2eea51bd01 "hw/audio/fmopl: Move ENV_CURVE to .heap to save 32KiB of .bss" Signed-off-by: Volker R=C3=BCmelin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/audio/fmopl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/audio/fmopl.c b/hw/audio/fmopl.c index 356d4dfbca..8a71a569fa 100644 --- a/hw/audio/fmopl.c +++ b/hw/audio/fmopl.c @@ -627,6 +627,7 @@ static int OPLOpenTable( void ) free(AMS_TABLE); return 0; } + ENV_CURVE =3D g_new(int32_t, 2 * EG_ENT + 1); /* make total level table */ for (t =3D 0;t < EG_ENT-1 ;t++){ rate =3D ((1< voltage */ @@ -694,6 +695,7 @@ static int OPLOpenTable( void ) =20 static void OPLCloseTable( void ) { + g_free(ENV_CURVE); free(TL_TABLE); free(SIN_TABLE); free(AMS_TABLE); @@ -1090,7 +1092,6 @@ FM_OPL *OPLCreate(int clock, int rate) OPL->clock =3D clock; OPL->rate =3D rate; OPL->max_ch =3D max_ch; - ENV_CURVE =3D g_new(int32_t, 2 * EG_ENT + 1); /* init grobal tables */ OPL_initialize(OPL); /* reset chip */ @@ -1128,7 +1129,6 @@ void OPLDestroy(FM_OPL *OPL) #endif OPL_UnLockTable(); free(OPL); - g_free(ENV_CURVE); } =20 /* ---------- Option handlers ---------- */ --=20 2.16.4