On 10/25/2012 04:39 PM, Peter Krempa wrote:
On 10/25/12 22:34, Laine Stump wrote:
> On 10/25/2012 11:18 AM, Peter Krempa wrote:
>> When there's no new definition the helper overwrote the old one with
>> NULL.
>> ---
>> src/conf/network_conf.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
>> index 8976f2a..93d1b4c 100644
>> --- a/src/conf/network_conf.c
>> +++ b/src/conf/network_conf.c
>> @@ -359,7 +359,7 @@ virNetworkObjSetDefTransient(virNetworkObjPtr
>> network, bool live)
>> void
>> virNetworkObjUnsetDefTransient(virNetworkObjPtr network)
>> {
>> - if (network->def) {
>> + if (network->newDef) {
>> virNetworkDefFree(network->def);
>> network->def = network->newDef;
>> network->newDef = NULL;
>
> Yes. ACK. (/raises hand acknowledging the screwup)
Thanks.
>
> BTW, although the change is correct, it currently is a NOP:
>
> 1) in the case of a persistent network, but def and newDef are always
> non-NULL when this is called,
> 2) in the case of a transient network, when this is called, the very
> next thing that happens is always to delete the entire networkObj.
In a patch 4/6 of this series, I added code that accesses the
definition right before tne network object is discarded. This caused
segfault of the daemon when I tried to get rid of the dnsmasq and
radvd status files when removing a network completely.
Aha!