On 3/15/19 10:30 AM, Ján Tomko wrote: > On Fri, Mar 15, 2019 at 10:12:45AM -0500, Eric Blake wrote: >> Checking that the derived class is larger than the requested parent >> class saves us from some obvious mistakes, but as written, it does not >> catch all the cases; in particular, it is easy to forget to update a >> VIR_CLASS_NEW when changing the 'parent' member from virObject to >> virObjectLockabale, but where the size checks don't catch that. Add a >> parameter for one more layer of sanity checking. >> >> Note that I did NOT change the fact that we require derived classes to >> be larger (as the difference in size makes it easy to tell classes >> apart), which means that even if a derived class has no functionality >> to add (but rather exists for compiler-enforced type-safety), it must >> still include a dummy member. But I did fix the wording of the error >> message to match the code. >> >> Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> >> --- >> >> Here's hoping Coverity doesn't have a false-positive complaint about >> the error message being a potential dereference of NULL (the only time >> 'parent == NULL' is when 'parentsize == 0', based on the fact that our >> syntax checks forbid raw calls to virClassNew() except for "virObject" >> itself - but Coverity likely won't see that). Actually, I realized we have sa_assert() for that. >> >> src/util/virobject.h | 5 ++++- >> src/util/virobject.c | 8 +++++--- >> 2 files changed, 9 insertions(+), 4 deletions(-) >> > > Reviewed-by: Ján Tomko <jtomko@xxxxxxxxxx> Thanks; tweaked and pushed. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list