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 <mprivozn@xxxxxxxxxx> --- src/util/virobject.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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, -- 2.16.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list