On 23/7/24 18:10, Philippe Mathieu-Daudé wrote:
On 23/7/24 18:18, Zhao Liu wrote:
According to the comment in qapi/error.h, dereferencing @errp requires
ERRP_GUARD():

* = Why, when and how to use ERRP_GUARD() =
*
* Without ERRP_GUARD(), use of the @errp parameter is restricted:
* - It must not be dereferenced, because it may be null.
...
* ERRP_GUARD() lifts these restrictions.
*
* To use ERRP_GUARD(), add it right at the beginning of the function.
* @errp can then be used without worrying about the argument being
* NULL or &error_fatal.
*
* Using it when it's not needed is safe, but please avoid cluttering
* the source with useless code.

In nubus_virtio_mmio_realize(), @errp is dereferenced without
ERRP_GUARD().

Although nubus_virtio_mmio_realize() - as a DeviceClass.realize()
method - is never passed a null @errp argument, it should follow the
rules on @errp usage.  Add the ERRP_GUARD() there.

Reviewed-by: Markus Armbruster <arm...@redhat.com>
Signed-off-by: Zhao Liu <zhao1....@intel.com>
---
v2: Used Markus' words in commit message and added his r/b tag.
---
  hw/nubus/nubus-virtio-mmio.c | 1 +
  1 file changed, 1 insertion(+)

Patch queued, thanks!

Squashing:

-- >8 --
diff --git a/hw/nubus/nubus-virtio-mmio.c b/hw/nubus/nubus-virtio-mmio.c
index a5558d3ec28..7a98731c451 100644
--- a/hw/nubus/nubus-virtio-mmio.c
+++ b/hw/nubus/nubus-virtio-mmio.c
@@ -7,6 +7,7 @@
  */

 #include "qemu/osdep.h"
+#include "qapi/error.h"
 #include "hw/nubus/nubus-virtio-mmio.h"

---

to avoid:

../hw/nubus/nubus-virtio-mmio.c:26:5: error: call to undeclared function 'ERRP_GUARD'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    ERRP_GUARD();
    ^
1 error generated.

Better to test your patches ;)

Regards,

Phil.

Reply via email to