On Mon, Jul 17, 2017 at 07:39:28AM -0400, John Ferlan wrote:
On 07/17/2017 04:15 AM, Pavel Hrdina wrote:
> On Sat, Jul 15, 2017 at 02:40:06PM -0400, John Ferlan wrote:
>> This reverts commit b3e71a8830b2683ee88fa10cb048eabb99a446c0.
>>
>> As it turns out this ends up very badly as the @def could be Free'd
>> even though it's owned by @obj as a result of the AssignDef.
>
> I don't see a reason to revert it. What do you mean that the @def can
> be freed? The virNWFilterObjListAssignDef() doesn't free the @def that
> is passed to it, it only assign it to nwfilter object and returns it
> immediately.
>
> Pavel
>
After ListAssignDef the @def is owned by @obj
If the SaveConfig fails, we jump to error: which will free @def. Now we
have an @obj in the nwfilters->objs list which has obj->def entry using
that address.
Oh, right, it might happen while reloading libvirtd daemon.
Sigh, I hate the nwfilter code, it's way to complex and ugly and has a
lot of workaround, like this UUID generation and saving it back to the
config file while loading the config file.
Anyway, we should fix it even though reloading of libvirtd probably
don't work.
Reviewed-by: Pavel Hrdina <phrdina(a)redhat.com>