[libvirt PATCH] check for NULL before calling g_regex_unref

Peter Krempa pkrempa at redhat.com
Tue Sep 8 13:35:58 UTC 2020


On Tue, Sep 08, 2020 at 15:20:52 +0200, Ján Tomko wrote:
> g_regex_unref reports an error if called with a NULL argument.
> 
> We have two cases in the code where we (possibly) call it on a NULL
> argument. The interesting one is in virDomainQemuMonitorEventCleanup.
> 
> Based on VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX, we unref
> data->regex, which has two problems:
> 
> * On the client side, flags is -1 so the comparison is true even if no
>   regex was used, reproducible by:
>   $ virsh qemu-monitor-event --timeout 1
>   which results in an ugly error:
> (process:1289846): GLib-CRITICAL **: 14:58:42.631: g_regex_unref: assertion 'regex != NULL' failed
> * On the server side, we only create the regex if both the flag and the
>   string are present, so it's possible to trigger this message by:
>   $ virsh qemu-monitor-event --regex --timeout 1
> 
> Use a non-NULL comparison instead of the flag to decide whether we need
> to unref the regex.

Please modify this last sentence to describe both fixes. I've flushed
out that there's another case by the time I've read the end here.

> Signed-off-by: Ján Tomko <jtomko at redhat.com>
> Fixes: 71efb59a4de7c51b1bc889a316f1796ebf55738f
> https://bugzilla.redhat.com/show_bug.cgi?id=1861176
> ---
>  src/conf/domain_event.c     | 2 +-
>  tests/vboxsnapshotxmltest.c | 3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)

Reviewed-by: Peter Krempa <pkrempa at redhat.com>




More information about the libvir-list mailing list