From nobody Sun Sep 28 17:48:16 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1757609561; cv=none; d=zohomail.com; s=zohoarc; b=V+BeUxaiG0cSU2eC6dSk6dQjLcF8KCrABhBDCvVgAW6r+xv67r160VxQe02l+T876qWTVolq4TF0LTZxHxcBjZBO/ZZURG8di0gSCElPtH+7UPqjRM+h639Cum7nulSKi+5QpKuUqgqFkN3svvM8QbNhcknEUjCsj+9dS0Ib5kE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1757609561; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lDIFm/NciBS2F0gopRTcAo1Mra2x5xPBU6oXwYj0/tM=; b=a40k4GTHpIoWBNNVzBge/3XGuQGvAJwK7uCb9AzZb2JIb84mUXDaYTysM51dxlPvYkg4y7PZ1QgmG17pKtYfGzoVGimFLAE7NFeI26mpEDk1SWJp0Z4G12a2ROMCF2U4pLet3BIhMG/c+FvJ063RSDsZ/H8z0H2XFtWL+o5IUXc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1757609561635430.3189528410903; Thu, 11 Sep 2025 09:52:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uwkW5-00038R-6q; Thu, 11 Sep 2025 12:51:25 -0400 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 1uwkVx-0002wv-0X for qemu-devel@nongnu.org; Thu, 11 Sep 2025 12:51:17 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uwkVq-0004AU-9L for qemu-devel@nongnu.org; Thu, 11 Sep 2025 12:51:16 -0400 Received: from mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net [IPv6:2a02:6b8:c42:94a9:0:640:a3fa:0]) by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id C47B980730; Thu, 11 Sep 2025 19:51:06 +0300 (MSK) Received: from vsementsov-lin.. (unknown [2a02:6bf:8080:b3c::1:2f]) by mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id 2pOVKM0Fka60-F8iLlU56; Thu, 11 Sep 2025 19:51:06 +0300 Precedence: bulk X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1757609466; bh=lDIFm/NciBS2F0gopRTcAo1Mra2x5xPBU6oXwYj0/tM=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=nqcqCzIbG47ovPYUfVqm/WI9mPE+YnLvITMVd3CkZgCwVqEamu8H27fuDWTiCP1NB 5VxReN2VeS3roMzDrK3g1B7wpT0k2Bo3Ig3BuVbCUYEqi/k8ltLC0C61Fsl1JbyiUK pbWvZ7P2yo5zvpX/bM34CAr+zaQpA4o7E8fA9oJs= Authentication-Results: mail-nwsmtp-smtp-corp-main-68.klg.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: jasowang@redhat.com Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, leiyang@redhat.com, steven.sistare@oracle.com, yc-core@yandex-team.ru, davydov-max@yandex-team.ru Subject: [PATCH v4 4/8] net/tap: launch_script(): add return value Date: Thu, 11 Sep 2025 19:50:57 +0300 Message-ID: <20250911165101.1637608-5-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250911165101.1637608-1-vsementsov@yandex-team.ru> References: <20250911165101.1637608-1-vsementsov@yandex-team.ru> 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+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=178.154.239.200; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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.29 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1757609562506116600 Content-Type: text/plain; charset="utf-8" Follow common recommendations to avoid error propagation. Signed-off-by: Vladimir Sementsov-Ogievskiy --- net/tap.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/net/tap.c b/net/tap.c index 49d4a29beb..13118515b9 100644 --- a/net/tap.c +++ b/net/tap.c @@ -82,7 +82,7 @@ typedef struct TAPState { Notifier exit; } TAPState; =20 -static void launch_script(const char *setup_script, const char *ifname, +static bool launch_script(const char *setup_script, const char *ifname, int fd, Error **errp); =20 static void tap_send(void *opaque); @@ -439,7 +439,7 @@ static void close_all_fds_after_fork(int excluded_fd) qemu_close_all_open_fd(skip_fd, nskip); } =20 -static void launch_script(const char *setup_script, const char *ifname, +static bool launch_script(const char *setup_script, const char *ifname, int fd, Error **errp) { int pid, status; @@ -451,8 +451,9 @@ static void launch_script(const char *setup_script, con= st char *ifname, if (pid < 0) { error_setg_errno(errp, errno, "could not launch network script %s", setup_script); - return; + return false; } + if (pid =3D=3D 0) { close_all_fds_after_fork(fd); parg =3D args; @@ -461,17 +462,20 @@ static void launch_script(const char *setup_script, c= onst char *ifname, *parg =3D NULL; execv(setup_script, args); _exit(1); - } else { - while (waitpid(pid, &status, 0) !=3D pid) { - /* loop */ - } + } =20 - if (WIFEXITED(status) && WEXITSTATUS(status) =3D=3D 0) { - return; - } - error_setg(errp, "network script %s failed with status %d", - setup_script, status); + while (waitpid(pid, &status, 0) !=3D pid) { + /* loop */ } + + if (WIFEXITED(status) && WEXITSTATUS(status) =3D=3D 0) { + return true; + } + + error_setg(errp, "network script %s failed with status %d", + setup_script, status); + + return false; } =20 static int recv_fd(int c) @@ -647,7 +651,6 @@ static int net_tap_init(const NetdevTapOptions *tap, in= t *vnet_hdr, const char *setup_script, char *ifname, size_t ifname_sz, int mq_required, Error **errp) { - Error *err =3D NULL; int fd, vnet_hdr_required; =20 if (tap->has_vnet_hdr) { @@ -667,9 +670,7 @@ static int net_tap_init(const NetdevTapOptions *tap, in= t *vnet_hdr, if (setup_script && setup_script[0] !=3D '\0' && strcmp(setup_script, "no") !=3D 0) { - launch_script(setup_script, ifname, fd, &err); - if (err) { - error_propagate(errp, err); + if (!launch_script(setup_script, ifname, fd, errp)) { close(fd); return -1; } --=20 2.48.1