From nobody Mon Feb 9 14:33:22 2026 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; 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=1575143655; cv=none; d=zohomail.com; s=zohoarc; b=R/sY8eZXvwZlks65NXFXevCLX097kh53WXxiOSaLr4HG/vx993W3d0l9yFWNPEpU+NrUaTcENxCvL7lsBWNAo0lmRqBUqST3X7FvC5cMgJWVr7Z/tD3p4ddpDvvOy8Xzs2XtBdfCB5NQ1MdgV6WAIKylPgZEjReSocWQRUQN94k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575143655; 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=Ui6GrgoIca+XbfoMtNNhuIbZOCAX//qMjn54wOZVwE0=; b=S4jH4+Z/a+76rJhwqFW+oBO/p8MfXsrCFFcn5oAiewWvOeC2cvc/38OBnlIUxch/TR3Op/y+09FPNrqb3GYdEvu/uC6ddX5BLfA9VBR0NZb4sttIVNPEGCPybu2NAM4otQ08W8QHvbn5htTrnw9TwWUir8liwVOzdhPHFffco38= 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 1575143655267491.1793896616206; Sat, 30 Nov 2019 11:54:15 -0800 (PST) Received: from localhost ([::1]:37746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ib8on-00032x-U8 for importer@patchew.org; Sat, 30 Nov 2019 14:54:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53527) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ib8ds-0006Tg-Qh for qemu-devel@nongnu.org; Sat, 30 Nov 2019 14:43:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ib8dq-000593-Rj for qemu-devel@nongnu.org; Sat, 30 Nov 2019 14:42:56 -0500 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:44727 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ib8do-00055U-RT for qemu-devel@nongnu.org; Sat, 30 Nov 2019 14:42:54 -0500 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-263-rIGtdbenONej9jLdE2_7DA-1; Sat, 30 Nov 2019 14:42:48 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B9A63107ACC4; Sat, 30 Nov 2019 19:42:47 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-134.ams2.redhat.com [10.36.116.134]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8ABFA5C219; Sat, 30 Nov 2019 19:42:47 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 1FDE611366E6; Sat, 30 Nov 2019 20:42:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575142972; 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=Ui6GrgoIca+XbfoMtNNhuIbZOCAX//qMjn54wOZVwE0=; b=i8x+bWHk/bEay8rChZ+/Wcnz78mjLGl55F1Cl9DigIi/wcVZfLbFVuynjUexWw4GSqd09p dbbvOSNbh/oDseodB24HxVamc4sFO/UtPWNBZOyXciLnsJFwn7TTINE+bvELuMFkwm3VLs MV4gyUO76PQU0QfoVx9luLhCh61+UnU= From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 08/21] exec: Fix latent file_ram_alloc() error handling bug Date: Sat, 30 Nov 2019 20:42:27 +0100 Message-Id: <20191130194240.10517-9-armbru@redhat.com> In-Reply-To: <20191130194240.10517-1-armbru@redhat.com> References: <20191130194240.10517-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-MC-Unique: rIGtdbenONej9jLdE2_7DA-1 X-Mimecast-Spam-Score: 0 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: 207.211.31.81 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: Igor Mammedov , vsementsov@virtuozzo.com 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" When os_mem_prealloc() fails, file_ram_alloc() calls qemu_ram_munmap() and returns null. Except it doesn't when its @errp argument is null, because it checks for failure with (errp && *errp). Messed up in commit 056b68af77 "fix qemu exit on memory hotplug when allocation fails at prealloc time". The bug can't bite as no caller actually passes null. Fix it anyway. Cc: Igor Mammedov Signed-off-by: Markus Armbruster Reviewed-by: Igor Mammedov --- exec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/exec.c b/exec.c index ffdb518535..45695a5f2d 100644 --- a/exec.c +++ b/exec.c @@ -1841,6 +1841,7 @@ static void *file_ram_alloc(RAMBlock *block, bool truncate, Error **errp) { + Error *err =3D NULL; MachineState *ms =3D MACHINE(qdev_get_machine()); void *area; =20 @@ -1898,8 +1899,9 @@ static void *file_ram_alloc(RAMBlock *block, } =20 if (mem_prealloc) { - os_mem_prealloc(fd, area, memory, ms->smp.cpus, errp); - if (errp && *errp) { + os_mem_prealloc(fd, area, memory, ms->smp.cpus, &err); + if (err) { + error_propagate(errp, err); qemu_ram_munmap(fd, area, memory); return NULL; } --=20 2.21.0