[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);
- [Qemu-devel] [PATCH 10/17] s390x/css: Pass local error object pointer to error_append_hint(), (continued)
- [Qemu-devel] [PATCH 10/17] s390x/css: Pass local error object pointer to error_append_hint(), Greg Kurz, 2019/09/17
- [Qemu-devel] [PATCH 11/17] scsi: Pass local error object pointer to error_append_hint(), Greg Kurz, 2019/09/17
- [Qemu-devel] [PATCH 12/17] migration: Pass local error object pointer to error_append_hint(), Greg Kurz, 2019/09/17
- [Qemu-devel] [PATCH 13/17] nbd: Pass local error object pointer to error_append_hint(), Greg Kurz, 2019/09/17
- [Qemu-devel] [PATCH 14/17] ccid-card-emul: Pass local error object pointer to error_append_hint(), Greg Kurz, 2019/09/17
- [Qemu-devel] [PATCH 15/17] option: Pass local error object pointer to error_append_hint(), Greg Kurz, 2019/09/17
- [Qemu-devel] [PATCH 16/17] socket: Pass local error object pointer to error_append_hint(), Greg Kurz, 2019/09/17
- [Qemu-devel] [PATCH 17/17] checkpatch: Warn when errp is passed to error_append_hint(),
Greg Kurz <=
- Re: [Qemu-devel] [PATCH 00/17] Fix usage of error_append_hint(), Philippe Mathieu-Daudé, 2019/09/17