Hi,
Please find the latest report on new defect(s) introduced to libvirt found with Coverity Scan.
** 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
Best regards,
The Coverity Scan Admin Team