From nobody Tue Feb 10 04:08:23 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=126.com Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1547388686044902.3640447040557; Sun, 13 Jan 2019 06:11:26 -0800 (PST) Received: from localhost ([127.0.0.1]:43741 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gigTr-00047b-9w for importer@patchew.org; Sun, 13 Jan 2019 09:11:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39995) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gigRj-0002tz-Kg for qemu-devel@nongnu.org; Sun, 13 Jan 2019 09:09:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gigRi-000300-Rc for qemu-devel@nongnu.org; Sun, 13 Jan 2019 09:09:03 -0500 Received: from m50-110.126.com ([123.125.50.110]:42735) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gigRi-0002vO-8o for qemu-devel@nongnu.org; Sun, 13 Jan 2019 09:09:02 -0500 Received: from localhost.localdomain (unknown [122.14.241.95]) by smtp4 (Coremail) with SMTP id jdKowABnTrN1RjtcH+piAA--.2722S3; Sun, 13 Jan 2019 22:08:55 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=Kz5NxOCzp7/OTsthmX pF+ZwhUkC92qWGhdhWtetvfvQ=; b=bWmqQ7AVRhYfHGW3/qeh4m6i4YqhVPxd91 nDPmRvrY9zNASkxFwsI7/wECgffjsP+AYcee/zEoHFGiBga4iW5DaGPk6lSH1gXM /TLmfBgXgG1/joeU1sIqrYrpq/mEMQZluI8Zx845XQW4YouXAs+/Ez7canW67ejN 2UQx3+h7M= From: Fei Li To: qemu-devel@nongnu.org, shirley17fei@gmail.com Date: Sun, 13 Jan 2019 22:08:45 +0800 Message-Id: <20190113140849.38339-2-lifei1214@126.com> X-Mailer: git-send-email 2.17.2 (Apple Git-113) In-Reply-To: <20190113140849.38339-1-lifei1214@126.com> References: <20190113140849.38339-1-lifei1214@126.com> X-CM-TRANSID: jdKowABnTrN1RjtcH+piAA--.2722S3 X-Coremail-Antispam: 1Uf129KBjvJXoW7ZF1rKF1xtFWftw13ur1fXrb_yoW8WF4rpr WDW34vkFW5JrZ7Cr1DAw10kFy7KrZ7G3y7Wr4xKw109r4UWr1rXr4xtryFgFn5GrZYvay5 ZFWkZr1xZw4DAF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jvYLkUUUUU= X-Originating-IP: [122.14.241.95] X-CM-SenderInfo: 5olivxarsrkqqrswhudrp/1tbi6xc7IVpD7gm3XwAAsw X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 123.125.50.110 Subject: [Qemu-devel] [PATCH for-4.0 1/5] Fix segmentation fault when qemu_signal_init fails X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fei Li , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Fei Li When qemu_signal_init() fails in qemu_init_main_loop(), we return without setting an error. Its callers crash then when they try to report the error with error_report_err(). To avoid such segmentation fault, add a new Error parameter to make the call trace to propagate the err to the final caller. Fixes: 2f78e491d7b46542158ce0b8132ee4e05bc0ade4 Cc: Paolo Bonzini Signed-off-by: Fei Li Reviewed-by: Fam Zheng Reviewed-by: Markus Armbruster --- util/main-loop.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/util/main-loop.c b/util/main-loop.c index affe0403c5..443cb4cfe8 100644 --- a/util/main-loop.c +++ b/util/main-loop.c @@ -71,7 +71,7 @@ static void sigfd_handler(void *opaque) } } =20 -static int qemu_signal_init(void) +static int qemu_signal_init(Error **errp) { int sigfd; sigset_t set; @@ -96,7 +96,7 @@ static int qemu_signal_init(void) sigdelset(&set, SIG_IPI); sigfd =3D qemu_signalfd(&set); if (sigfd =3D=3D -1) { - fprintf(stderr, "failed to create signalfd\n"); + error_setg_errno(errp, errno, "failed to create signalfd"); return -errno; } =20 @@ -109,7 +109,7 @@ static int qemu_signal_init(void) =20 #else /* _WIN32 */ =20 -static int qemu_signal_init(void) +static int qemu_signal_init(Error **errp) { return 0; } @@ -148,7 +148,7 @@ int qemu_init_main_loop(Error **errp) =20 init_clocks(qemu_timer_notify_cb); =20 - ret =3D qemu_signal_init(); + ret =3D qemu_signal_init(errp); if (ret) { return ret; } --=20 2.17.2 (Apple Git-113)