|
From: | Eric Blake |
Subject: | Re: [Qemu-devel] [PATCH v2 2/3] qobject: introduce QObjectCommon |
Date: | Wed, 28 Mar 2018 08:55:51 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 03/28/2018 08:48 AM, Marc-André Lureau wrote:
+#define QOBJECT(x) \ + container_of(&(x)->base, QObject, base)If I understand correctly, this still causes clang complaints when called as QOBJECT(NULL). As long as we are touching this, should we improve this macro to be friendly to NULL conversion?I don't see much need for allowing NULL (literally) to be passed to QOBJECT(). If it's a null pointer, as long as it has the right type, it should be fine, shouldn't it?
Not with clang ubsan (okay, the failure is at runtime, not compile time): https://lists.gnu.org/archive/html/qemu-devel/2018-03/msg05143.html https://lists.gnu.org/archive/html/qemu-devel/2018-03/msg05148.htmlEven when the offset is 0, the mere fact that you are computing an offset relative to a NULL pointer is undefined behavior.
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |