]> xenbits.xensource.com Git - libvirt.git/commitdiff
virObjectEventNew: Use virObjectUnref() to free virObjectEvent
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 4 Aug 2016 06:33:17 +0000 (08:33 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 4 Aug 2016 13:32:22 +0000 (15:32 +0200)
While no leak was observed yet, there might be one if
virObjectEventClass is ever derived from another class. Because
in that case plain VIR_FREE() will not call dispose() from parent
classes possibly leaking some memory.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/object_event.c

index bbef7f6bf263377a6ab2dc38aca36209a73ad8cd..b5a6a81a3a044d650fc80d860c76e6bcc3a4792a 100644 (file)
@@ -649,13 +649,9 @@ virObjectEventNew(virClassPtr klass,
     event->eventID = eventID;
     event->remoteID = -1;
 
-    if (VIR_STRDUP(event->meta.name, name) < 0) {
-        VIR_FREE(event);
-        return NULL;
-    }
-    if (VIR_STRDUP(event->meta.key, key) < 0) {
-        VIR_FREE(event->meta.name);
-        VIR_FREE(event);
+    if (VIR_STRDUP(event->meta.name, name) < 0 ||
+        VIR_STRDUP(event->meta.key, key) < 0) {
+        virObjectUnref(event);
         return NULL;
     }
     event->meta.id = id;