]> xenbits.xensource.com Git - libvirt.git/commitdiff
rpc: Fix possible crash when MDNSAddEntry fails
authorMartin Kletzander <mkletzan@redhat.com>
Thu, 11 Jun 2015 11:58:43 +0000 (13:58 +0200)
committerMartin Kletzander <mkletzan@redhat.com>
Mon, 15 Jun 2015 15:12:59 +0000 (17:12 +0200)
If virNetServerMDNSAddEntry() fails when adding a service to a server,
it doesn't decrease the number of services.  Hence access to their
members segfaults (e.g. when free()-ing the sruct).

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
src/rpc/virnetserver.c

index 091a1dc0bc8f1df125dd723ad1e5026b324e4019..2af878977a1b8e54e54afdea13a4e0712fe562af 100644 (file)
@@ -974,8 +974,10 @@ int virNetServerAddService(virNetServerPtr srv,
 
         if (!virNetServerMDNSAddEntry(srv->mdnsGroup,
                                       mdnsEntryName,
-                                      port))
+                                      port)) {
+            srv->nservices--;
             goto error;
+        }
     }
 
     srv->services[srv->nservices-1] = svc;