Move the consumption of @def in virInterfaceObjNew and then handle that
in the error path of virInterfaceObjListAssignDef since it's caller expects
to need to free @def when NULL is returned and so would virInterfaceObjFree.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/conf/virinterfaceobj.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/conf/virinterfaceobj.c b/src/conf/virinterfaceobj.c
index 1e3f25c..159fcb2 100644
--- a/src/conf/virinterfaceobj.c
+++ b/src/conf/virinterfaceobj.c
@@ -47,7 +47,7 @@ struct _virInterfaceObjList {
/* virInterfaceObj manipulation */
static virInterfaceObjPtr
-virInterfaceObjNew(void)
+virInterfaceObjNew(virInterfaceDefPtr def)
{
virInterfaceObjPtr obj;
@@ -62,6 +62,7 @@ virInterfaceObjNew(void)
}
virInterfaceObjLock(obj);
+ obj->def = def;
return obj;
}
@@ -251,17 +252,17 @@ virInterfaceObjListAssignDef(virInterfaceObjListPtr interfaces,
return obj;
}
- if (!(obj = virInterfaceObjNew()))
+ if (!(obj = virInterfaceObjNew(def)))
return NULL;
if (VIR_APPEND_ELEMENT_COPY(interfaces->objs,
interfaces->count, obj) < 0) {
+ obj->def = NULL;
virInterfaceObjUnlock(obj);
virInterfaceObjFree(obj);
return NULL;
}
- obj->def = def;
return obj;
}
--
2.9.4