From: John Ferlan Date: Fri, 31 Mar 2017 15:35:05 +0000 (-0400) Subject: util: Add object checking for virObject{Ref|Unref} X-Git-Tag: v3.7.0-rc1~140 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3e17259e1224b1588e0502a6aa7ed9ff156f02e;p=thirdparty%2Flibvirt.git util: Add object checking for virObject{Ref|Unref} Rather than assuming that what's passed to virObject{Ref|Unref} would be a virObjectPtr as long as it's not NULL, let's do the similar checks virObjectIsClass in order to prevent a possible increment or decrement to some field at the obj->u.s.refs offset. Signed-off-by: John Ferlan --- diff --git a/src/util/virobject.c b/src/util/virobject.c index 54d78b0018..cfa821c4b0 100644 --- a/src/util/virobject.c +++ b/src/util/virobject.c @@ -343,7 +343,7 @@ virObjectUnref(void *anyobj) { virObjectPtr obj = anyobj; - if (!obj) + if (VIR_OBJECT_NOTVALID(obj)) return false; bool lastRef = virAtomicIntDecAndTest(&obj->u.s.refs); @@ -382,7 +382,7 @@ virObjectRef(void *anyobj) { virObjectPtr obj = anyobj; - if (!obj) + if (VIR_OBJECT_NOTVALID(obj)) return NULL; virAtomicIntInc(&obj->u.s.refs); PROBE(OBJECT_REF, "obj=%p", obj);