Hi,

Please find the latest report on new defect(s) introduced to libvirt found with Coverity Scan.

Defect Details

** CID 908224:         (RESOURCE_LEAK)
/src/conf/network_conf.c: 2108           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2141           in virNetworkIPDefFormat()


_____________________________________________________________________________________________
*** CID 908224:           (RESOURCE_LEAK)
/src/conf/network_conf.c: 2108             in virNetworkIPDefFormat()
2102                 virSocketAddrRange addr = def->ranges[i].addr;
2103                 virNetworkDHCPLeaseTimeDef *lease = def->ranges[i].lease;
2104                 g_autofree char *saddr = NULL;
2105                 g_autofree char *eaddr = NULL;
2106     
2107                 if (!(saddr = virSocketAddrFormat(&addr.start)))
>>>     CID 908224:           (RESOURCE_LEAK)
>>>     Variable "ipChildBuf" going out of scope leaks the storage "ipChildBuf.str" points to.
2108                     return -1;
2109     
2110                 if (!(eaddr = virSocketAddrFormat(&addr.end)))
2111                     return -1;
2112     
2113                 virBufferAsprintf(&rangeAttrBuf, " start='%s' end='%s'",
/src/conf/network_conf.c: 2141             in virNetworkIPDefFormat()
2135                     virBufferAsprintf(&hostAttrBuf, " id='%s'", def->hosts[i].id);
2136                 if (def->hosts[i].name)
2137                     virBufferAsprintf(&hostAttrBuf, " name='%s'", def->hosts[i].name);
2138                 if (VIR_SOCKET_ADDR_VALID(&def->hosts[i].ip)) {
2139                     g_autofree char *ipaddr = virSocketAddrFormat(&def->hosts[i].ip);
2140                     if (!ipaddr)
>>>     CID 908224:           (RESOURCE_LEAK)
>>>     Variable "ipChildBuf" going out of scope leaks the storage "ipChildBuf.str" points to.
2141                         return -1;
2142     
2143                     virBufferAsprintf(&hostAttrBuf, " ip='%s'", ipaddr);
2144                 }
2145                 if (lease) {
2146                     if (!lease->expiry) {

** CID 908223:         (RESOURCE_LEAK)
/src/conf/network_conf.c: 2141           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2141           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2141           in virNetworkIPDefFormat()


_____________________________________________________________________________________________
*** CID 908223:           (RESOURCE_LEAK)
/src/conf/network_conf.c: 2141             in virNetworkIPDefFormat()
2135                     virBufferAsprintf(&hostAttrBuf, " id='%s'", def->hosts[i].id);
2136                 if (def->hosts[i].name)
2137                     virBufferAsprintf(&hostAttrBuf, " name='%s'", def->hosts[i].name);
2138                 if (VIR_SOCKET_ADDR_VALID(&def->hosts[i].ip)) {
2139                     g_autofree char *ipaddr = virSocketAddrFormat(&def->hosts[i].ip);
2140                     if (!ipaddr)
>>>     CID 908223:           (RESOURCE_LEAK)
>>>     Variable "hostAttrBuf" going out of scope leaks the storage "hostAttrBuf.str" points to.
2141                         return -1;
2142     
2143                     virBufferAsprintf(&hostAttrBuf, " ip='%s'", ipaddr);
2144                 }
2145                 if (lease) {
2146                     if (!lease->expiry) {
/src/conf/network_conf.c: 2141             in virNetworkIPDefFormat()
2135                     virBufferAsprintf(&hostAttrBuf, " id='%s'", def->hosts[i].id);
2136                 if (def->hosts[i].name)
2137                     virBufferAsprintf(&hostAttrBuf, " name='%s'", def->hosts[i].name);
2138                 if (VIR_SOCKET_ADDR_VALID(&def->hosts[i].ip)) {
2139                     g_autofree char *ipaddr = virSocketAddrFormat(&def->hosts[i].ip);
2140                     if (!ipaddr)
>>>     CID 908223:           (RESOURCE_LEAK)
>>>     Variable "hostAttrBuf" going out of scope leaks the storage "hostAttrBuf.str" points to.
2141                         return -1;
2142     
2143                     virBufferAsprintf(&hostAttrBuf, " ip='%s'", ipaddr);
2144                 }
2145                 if (lease) {
2146                     if (!lease->expiry) {
/src/conf/network_conf.c: 2141             in virNetworkIPDefFormat()
2135                     virBufferAsprintf(&hostAttrBuf, " id='%s'", def->hosts[i].id);
2136                 if (def->hosts[i].name)
2137                     virBufferAsprintf(&hostAttrBuf, " name='%s'", def->hosts[i].name);
2138                 if (VIR_SOCKET_ADDR_VALID(&def->hosts[i].ip)) {
2139                     g_autofree char *ipaddr = virSocketAddrFormat(&def->hosts[i].ip);
2140                     if (!ipaddr)
>>>     CID 908223:           (RESOURCE_LEAK)
>>>     Variable "hostAttrBuf" going out of scope leaks the storage "hostAttrBuf.str" points to.
2141                         return -1;
2142     
2143                     virBufferAsprintf(&hostAttrBuf, " ip='%s'", ipaddr);
2144                 }
2145                 if (lease) {
2146                     if (!lease->expiry) {

** CID 908222:         (RESOURCE_LEAK)
/src/conf/network_conf.c: 2141           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2164           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2108           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2164           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2141           in virNetworkIPDefFormat()


_____________________________________________________________________________________________
*** CID 908222:           (RESOURCE_LEAK)
/src/conf/network_conf.c: 2141             in virNetworkIPDefFormat()
2135                     virBufferAsprintf(&hostAttrBuf, " id='%s'", def->hosts[i].id);
2136                 if (def->hosts[i].name)
2137                     virBufferAsprintf(&hostAttrBuf, " name='%s'", def->hosts[i].name);
2138                 if (VIR_SOCKET_ADDR_VALID(&def->hosts[i].ip)) {
2139                     g_autofree char *ipaddr = virSocketAddrFormat(&def->hosts[i].ip);
2140                     if (!ipaddr)
>>>     CID 908222:           (RESOURCE_LEAK)
>>>     Variable "dhcpChildBuf" going out of scope leaks the storage "dhcpChildBuf.str" points to.
2141                         return -1;
2142     
2143                     virBufferAsprintf(&hostAttrBuf, " ip='%s'", ipaddr);
2144                 }
2145                 if (lease) {
2146                     if (!lease->expiry) {
/src/conf/network_conf.c: 2164             in virNetworkIPDefFormat()
2158                 virBuffer bootpAttrBuf = VIR_BUFFER_INITIALIZER;
2159     
2160                 virBufferEscapeString(&bootpAttrBuf, " file='%s'", def->bootfile);
2161                 if (VIR_SOCKET_ADDR_VALID(&def->bootserver)) {
2162                     g_autofree char *ipaddr = virSocketAddrFormat(&def->bootserver);
2163                     if (!ipaddr)
>>>     CID 908222:           (RESOURCE_LEAK)
>>>     Variable "dhcpChildBuf" going out of scope leaks the storage "dhcpChildBuf.str" points to.
2164                         return -1;
2165     
2166                     virBufferEscapeString(&bootpAttrBuf, " server='%s'", ipaddr);
2167                 }
2168     
2169                 virXMLFormatElement(&dhcpChildBuf, "bootp", &bootpAttrBuf, NULL);
/src/conf/network_conf.c: 2108             in virNetworkIPDefFormat()
2102                 virSocketAddrRange addr = def->ranges[i].addr;
2103                 virNetworkDHCPLeaseTimeDef *lease = def->ranges[i].lease;
2104                 g_autofree char *saddr = NULL;
2105                 g_autofree char *eaddr = NULL;
2106     
2107                 if (!(saddr = virSocketAddrFormat(&addr.start)))
>>>     CID 908222:           (RESOURCE_LEAK)
>>>     Variable "dhcpChildBuf" going out of scope leaks the storage "dhcpChildBuf.str" points to.
2108                     return -1;
2109     
2110                 if (!(eaddr = virSocketAddrFormat(&addr.end)))
2111                     return -1;
2112     
2113                 virBufferAsprintf(&rangeAttrBuf, " start='%s' end='%s'",
/src/conf/network_conf.c: 2164             in virNetworkIPDefFormat()
2158                 virBuffer bootpAttrBuf = VIR_BUFFER_INITIALIZER;
2159     
2160                 virBufferEscapeString(&bootpAttrBuf, " file='%s'", def->bootfile);
2161                 if (VIR_SOCKET_ADDR_VALID(&def->bootserver)) {
2162                     g_autofree char *ipaddr = virSocketAddrFormat(&def->bootserver);
2163                     if (!ipaddr)
>>>     CID 908222:           (RESOURCE_LEAK)
>>>     Variable "dhcpChildBuf" going out of scope leaks the storage "dhcpChildBuf.str" points to.
2164                         return -1;
2165     
2166                     virBufferEscapeString(&bootpAttrBuf, " server='%s'", ipaddr);
2167                 }
2168     
2169                 virXMLFormatElement(&dhcpChildBuf, "bootp", &bootpAttrBuf, NULL);
/src/conf/network_conf.c: 2141             in virNetworkIPDefFormat()
2135                     virBufferAsprintf(&hostAttrBuf, " id='%s'", def->hosts[i].id);
2136                 if (def->hosts[i].name)
2137                     virBufferAsprintf(&hostAttrBuf, " name='%s'", def->hosts[i].name);
2138                 if (VIR_SOCKET_ADDR_VALID(&def->hosts[i].ip)) {
2139                     g_autofree char *ipaddr = virSocketAddrFormat(&def->hosts[i].ip);
2140                     if (!ipaddr)
>>>     CID 908222:           (RESOURCE_LEAK)
>>>     Variable "dhcpChildBuf" going out of scope leaks the storage "dhcpChildBuf.str" points to.
2141                         return -1;
2142     
2143                     virBufferAsprintf(&hostAttrBuf, " ip='%s'", ipaddr);
2144                 }
2145                 if (lease) {
2146                     if (!lease->expiry) {

** CID 908221:         (RESOURCE_LEAK)
/src/conf/network_conf.c: 2141           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2108           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2082           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2108           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2108           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2108           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2076           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2108           in virNetworkIPDefFormat()
/src/conf/network_conf.c: 2082           in virNetworkIPDefFormat()


_____________________________________________________________________________________________
*** CID 908221:           (RESOURCE_LEAK)
/src/conf/network_conf.c: 2141             in virNetworkIPDefFormat()
2135                     virBufferAsprintf(&hostAttrBuf, " id='%s'", def->hosts[i].id);
2136                 if (def->hosts[i].name)
2137                     virBufferAsprintf(&hostAttrBuf, " name='%s'", def->hosts[i].name);
2138                 if (VIR_SOCKET_ADDR_VALID(&def->hosts[i].ip)) {
2139                     g_autofree char *ipaddr = virSocketAddrFormat(&def->hosts[i].ip);
2140                     if (!ipaddr)
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2141                         return -1;
2142     
2143                     virBufferAsprintf(&hostAttrBuf, " ip='%s'", ipaddr);
2144                 }
2145                 if (lease) {
2146                     if (!lease->expiry) {
/src/conf/network_conf.c: 2108             in virNetworkIPDefFormat()
2102                 virSocketAddrRange addr = def->ranges[i].addr;
2103                 virNetworkDHCPLeaseTimeDef *lease = def->ranges[i].lease;
2104                 g_autofree char *saddr = NULL;
2105                 g_autofree char *eaddr = NULL;
2106     
2107                 if (!(saddr = virSocketAddrFormat(&addr.start)))
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2108                     return -1;
2109     
2110                 if (!(eaddr = virSocketAddrFormat(&addr.end)))
2111                     return -1;
2112     
2113                 virBufferAsprintf(&rangeAttrBuf, " start='%s' end='%s'",
/src/conf/network_conf.c: 2082             in virNetworkIPDefFormat()
2076                 return -1;
2077             virBufferAsprintf(&ipAttrBuf, " address='%s'", addr);
2078         }
2079         if (VIR_SOCKET_ADDR_VALID(&def->netmask)) {
2080             g_autofree char *addr = virSocketAddrFormat(&def->netmask);
2081             if (!addr)
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2082                 return -1;
2083             virBufferAsprintf(&ipAttrBuf, " netmask='%s'", addr);
2084         }
2085         if (def->prefix > 0)
2086             virBufferAsprintf(&ipAttrBuf, " prefix='%u'", def->prefix);
2087     
/src/conf/network_conf.c: 2108             in virNetworkIPDefFormat()
2102                 virSocketAddrRange addr = def->ranges[i].addr;
2103                 virNetworkDHCPLeaseTimeDef *lease = def->ranges[i].lease;
2104                 g_autofree char *saddr = NULL;
2105                 g_autofree char *eaddr = NULL;
2106     
2107                 if (!(saddr = virSocketAddrFormat(&addr.start)))
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2108                     return -1;
2109     
2110                 if (!(eaddr = virSocketAddrFormat(&addr.end)))
2111                     return -1;
2112     
2113                 virBufferAsprintf(&rangeAttrBuf, " start='%s' end='%s'",
/src/conf/network_conf.c: 2108             in virNetworkIPDefFormat()
2102                 virSocketAddrRange addr = def->ranges[i].addr;
2103                 virNetworkDHCPLeaseTimeDef *lease = def->ranges[i].lease;
2104                 g_autofree char *saddr = NULL;
2105                 g_autofree char *eaddr = NULL;
2106     
2107                 if (!(saddr = virSocketAddrFormat(&addr.start)))
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2108                     return -1;
2109     
2110                 if (!(eaddr = virSocketAddrFormat(&addr.end)))
2111                     return -1;
2112     
2113                 virBufferAsprintf(&rangeAttrBuf, " start='%s' end='%s'",
/src/conf/network_conf.c: 2108             in virNetworkIPDefFormat()
2102                 virSocketAddrRange addr = def->ranges[i].addr;
2103                 virNetworkDHCPLeaseTimeDef *lease = def->ranges[i].lease;
2104                 g_autofree char *saddr = NULL;
2105                 g_autofree char *eaddr = NULL;
2106     
2107                 if (!(saddr = virSocketAddrFormat(&addr.start)))
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2108                     return -1;
2109     
2110                 if (!(eaddr = virSocketAddrFormat(&addr.end)))
2111                     return -1;
2112     
2113                 virBufferAsprintf(&rangeAttrBuf, " start='%s' end='%s'",
/src/conf/network_conf.c: 2076             in virNetworkIPDefFormat()
2070     
2071         if (def->family)
2072             virBufferAsprintf(&ipAttrBuf, " family='%s'", def->family);
2073         if (VIR_SOCKET_ADDR_VALID(&def->address)) {
2074             g_autofree char *addr = virSocketAddrFormat(&def->address);
2075             if (!addr)
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2076                 return -1;
2077             virBufferAsprintf(&ipAttrBuf, " address='%s'", addr);
2078         }
2079         if (VIR_SOCKET_ADDR_VALID(&def->netmask)) {
2080             g_autofree char *addr = virSocketAddrFormat(&def->netmask);
2081             if (!addr)
/src/conf/network_conf.c: 2108             in virNetworkIPDefFormat()
2102                 virSocketAddrRange addr = def->ranges[i].addr;
2103                 virNetworkDHCPLeaseTimeDef *lease = def->ranges[i].lease;
2104                 g_autofree char *saddr = NULL;
2105                 g_autofree char *eaddr = NULL;
2106     
2107                 if (!(saddr = virSocketAddrFormat(&addr.start)))
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2108                     return -1;
2109     
2110                 if (!(eaddr = virSocketAddrFormat(&addr.end)))
2111                     return -1;
2112     
2113                 virBufferAsprintf(&rangeAttrBuf, " start='%s' end='%s'",
/src/conf/network_conf.c: 2082             in virNetworkIPDefFormat()
2076                 return -1;
2077             virBufferAsprintf(&ipAttrBuf, " address='%s'", addr);
2078         }
2079         if (VIR_SOCKET_ADDR_VALID(&def->netmask)) {
2080             g_autofree char *addr = virSocketAddrFormat(&def->netmask);
2081             if (!addr)
>>>     CID 908221:           (RESOURCE_LEAK)
>>>     Variable "ipAttrBuf" going out of scope leaks the storage "ipAttrBuf.str" points to.
2082                 return -1;
2083             virBufferAsprintf(&ipAttrBuf, " netmask='%s'", addr);
2084         }
2085         if (def->prefix > 0)
2086             virBufferAsprintf(&ipAttrBuf, " prefix='%u'", def->prefix);
2087     

  

View Defects in Coverity Scan

Best regards,

The Coverity Scan Admin Team