From: Michal Privoznik Date: Tue, 17 Apr 2018 15:52:03 +0000 (+0200) Subject: virobject: Check if @parent is the first member in class X-Git-Tag: v4.3.0-rc1~185 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76ae74b1d16260c56b65a2764498b4601ada06e0;p=thirdparty%2Flibvirt.git virobject: Check if @parent is the first member in class Our virObject code relies heavily on the fact that the first member of the class struct is type of virObject (or some derivation of if). Let's check for that. Signed-off-by: Michal Privoznik Reviewed-by: Daniel P. Berrangé --- diff --git a/src/util/virobject.h b/src/util/virobject.h index ed1a117b09..77ebad1e8b 100644 --- a/src/util/virobject.h +++ b/src/util/virobject.h @@ -76,7 +76,8 @@ virClassPtr virClassForObjectRWLockable(void); # endif # define VIR_CLASS_NEW(name, prnt) \ - (name##Class = virClassNew(prnt, #name, sizeof(name), name##Dispose)) + verify_expr(offsetof(name, parent) == 0, \ + (name##Class = virClassNew(prnt, #name, sizeof(name), name##Dispose))) virClassPtr virClassNew(virClassPtr parent,