Commit
4337bc57be introduced code that would in certain error paths
unref the last reference of a pointer, but return it.
Clear the pointers before returning them.
goto cleanup;
if ((ret = virGetNodeDevice(conn, name))) {
- if (VIR_STRDUP(ret->parent, obj->def->parent) < 0)
+ if (VIR_STRDUP(ret->parent, obj->def->parent) < 0) {
virObjectUnref(ret);
+ ret = NULL;
+ }
}
cleanup:
goto out;
if ((dev = virGetNodeDevice(conn, obj->def->name))) {
- if (VIR_STRDUP(dev->parent, obj->def->parent) < 0)
+ if (VIR_STRDUP(dev->parent, obj->def->parent) < 0) {
virObjectUnref(dev);
+ dev = NULL;
+ }
}
virNodeDeviceObjUnlock(obj);
goto out;
goto cleanup;
if ((ret = virGetNodeDevice(conn, name))) {
- if (VIR_STRDUP(ret->parent, obj->def->parent) < 0)
+ if (VIR_STRDUP(ret->parent, obj->def->parent) < 0) {
virObjectUnref(ret);
+ ret = NULL;
+ }
}
cleanup: