From 76ae74b1d16260c56b65a2764498b4601ada06e0 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 17 Apr 2018 17:52:03 +0200 Subject: [PATCH] virobject: Check if @parent is the first member in class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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é --- 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,