From nobody Sat May 18 23:14:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615490828; cv=none; d=zohomail.com; s=zohoarc; b=F2XD5cL6SDnszcr1kO/Ur94u/HZI73I4IAr+gh79ihaCCOurgOj/FGUheYEJlFKJGZy09mQ3s4UmHAieqZfvtfIj31IZtwON8mPK0aPHVjhQQlD4fzDdZVWVDqhxL0Z0mB2d1llb/ojkGDwN/vgJxdn9LbVqVpG+0FPNrIkPQvg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615490828; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:MIME-Version:Message-ID:Subject:To; bh=Ptub5yPMaAvKgdDu/UvtVxoAwkzecy3eN3RPQo/6VOU=; b=inRZwHXuPmighDLawX0lwEP6NGgoejRwXUuM1InMVn7jOUMdHuO1s8tTgk9WxXR4KRXzV5VhIJuM0CHxLckdQ/wRXhyXzXvCplaCjlzs5ssG5+r65W9PYHD+FW44LsWhCR4In47Ook4xtAYXumBya7z7ckgYEHpZR0+xsEU0Sic= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1615490828902679.2092829258208; Thu, 11 Mar 2021 11:27:08 -0800 (PST) Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-220-GzaMeHHzNgiBWGcVhrh4BA-1; Thu, 11 Mar 2021 14:27:03 -0500 Received: by mail-wm1-f72.google.com with SMTP id f9so4466620wml.0 for ; Thu, 11 Mar 2021 11:27:03 -0800 (PST) Return-Path: Return-Path: Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id h22sm5712684wmb.36.2021.03.11.11.27.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Mar 2021 11:27:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615490827; 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; bh=Ptub5yPMaAvKgdDu/UvtVxoAwkzecy3eN3RPQo/6VOU=; b=MQIflKEsYBLDEoc/6M3sBf09SyNLH2G6/feq0hK4wKeyBtYdeN1UjhabofuZ22/eS8AWV4 WnutjishSW10ER4fmy6f5tTjtPHnSRPq8NkYPtPrPPkw7VmhllNgNrYGfA2iuQZIQXd1ho e5rdyVsCU6eS/X+3Qt54XMH2N5Lz2dQ= X-MC-Unique: GzaMeHHzNgiBWGcVhrh4BA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Ptub5yPMaAvKgdDu/UvtVxoAwkzecy3eN3RPQo/6VOU=; b=Iqh2HFPyGSqIaC7MtrJd5p9yE+6r4WGdEjhAJUwPSPsREgt6eq3asydRpRJ2pRhIYe b23UQLs8l7CarLE0NuyoDse5FH4Xh3YfmiDJRpt3mhQqk7MV7FIBvW8joarXCvzXyNZf 2CT7/hpwno0Xu2D7qgWDKAsteTROXZjQ2it4inlx5Wz8f7U2OvJF7/zqiIsRYN82nx2A 1/u25+dGo8Em8DS+YIwlxN/kxuk9QIeTnRhavhex1Q69hngLFT44P0V9klLiMUT6fqNT wNEcZ9ka2Ym6H9C+zdwgGI3ips3QhnCW7+LXfo/G+75AqNjt1Ho2LcQp6nAZ2fpponOl wGhA== X-Gm-Message-State: AOAM530IZd4oGodk0qNLsa9gwsgdFBt1i13M1ivsOgEeXXoaudkrk2vg JkGjrYAng+s/qGWv5Q+YwHleGwqmKz3LFEg31x6bp/7h06F8Q0GGnYgQM01IxTz1G7w+aT6tVGA qLUemdsC+KTvIzw== X-Received: by 2002:a5d:4e83:: with SMTP id e3mr10428824wru.82.1615490822563; Thu, 11 Mar 2021 11:27:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJw4Ke12Hf2QaAL/5Xiky1GBemQdLDZx6Hn0+VPGKW2l3K7b3CnKsOh+pUQsQmriMpKeo7QNNg== X-Received: by 2002:a5d:4e83:: with SMTP id e3mr10428806wru.82.1615490822327; Thu, 11 Mar 2021 11:27:02 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Vladimir Sementsov-Ogievskiy , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Kevin Wolf Subject: [PATCH] scripts/coccinelle: Catch dubious code after &error_abort/&error_fatal Date: Thu, 11 Mar 2021 20:27:00 +0100 Message-Id: <20210311192700.1441263-1-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Calls passing &error_abort or &error_fatal don't return. Any code after such use is dubious. Add a coccinelle patch to detect such pattern. Inspired-by: Kevin Wolf Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- .../use-after-abort-fatal-errp.cocci | 33 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 34 insertions(+) create mode 100644 scripts/coccinelle/use-after-abort-fatal-errp.cocci diff --git a/scripts/coccinelle/use-after-abort-fatal-errp.cocci b/scripts/= coccinelle/use-after-abort-fatal-errp.cocci new file mode 100644 index 00000000000..ead9de5826a --- /dev/null +++ b/scripts/coccinelle/use-after-abort-fatal-errp.cocci @@ -0,0 +1,33 @@ +/* Find dubious code use after error_abort/error_fatal + * + * Inspired by this patch: + * https://www.mail-archive.com/qemu-devel@nongnu.org/msg789501.html + * + * Copyright (C) 2121 Red Hat, Inc. + * + * Authors: + * Philippe Mathieu-Daud=C3=A9 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +@@ +identifier func_with_errp; +@@ +( + if (func_with_errp(..., &error_fatal)) { + /* Used for displaying help message */ + ... + exit(...); + } +| +*if (func_with_errp(..., &error_fatal)) { + /* dubious code */ + ... + } +| +*if (func_with_errp(..., &error_abort)) { + /* dubious code */ + ... + } +) diff --git a/MAINTAINERS b/MAINTAINERS index 1e15dab8cd4..db6596eb06d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2368,6 +2368,7 @@ F: scripts/coccinelle/error_propagate_null.cocci F: scripts/coccinelle/remove_local_err.cocci F: scripts/coccinelle/use-error_fatal.cocci F: scripts/coccinelle/errp-guard.cocci +F: scripts/coccinelle/use-after-abort-fatal-errp.cocci =20 GDB stub M: Alex Benn=C3=A9e --=20 2.26.2