qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 17/17] checkpatch: Warn when errp is passed to error


From: Greg Kurz
Subject: [Qemu-devel] [PATCH 17/17] checkpatch: Warn when errp is passed to error_append_hint()
Date: Tue, 17 Sep 2019 12:22:18 +0200
User-agent: StGit/unknown-version

Passing errp from the argument list to error_append_hint()
isn't recommended because it may cause unwanted behaviours
when errp is equal to &error_fatal or &error_abort.

First, error_append_hint() aborts QEMU when passed either of
those.

Second, consider the following:

    void foo(Error **errp)
    {
         error_setg(errp, "foo");
         error_append_hint(errp, "Try bar\n");
    }

error_setg() causes QEMU to exit or abort, and hints aren't
added.

Signed-off-by: Greg Kurz <address@hidden>
---
 scripts/checkpatch.pl |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index aa9a354a0e7e..17ce026282a6 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2902,6 +2902,10 @@ sub process {
                }
        }
 
+               if ($line =~ /error_append_hint\(errp/) {
+                   WARN("suspicious errp passed to error_append_hint()\n" .
+                        $herecurr);
+               }
 # check for non-portable libc calls that have portable alternatives in QEMU
                if ($line =~ /\bffs\(/) {
                        ERROR("use ctz32() instead of ffs()\n" . $herecurr);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]