[libvirt PATCH] check for NULL before calling g_regex_unref

Martin Kletzander mkletzan at redhat.com
Tue Sep 8 13:37:31 UTC 2020


On Tue, Sep 08, 2020 at 03:20:52PM +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.
>
>Signed-off-by: Ján Tomko <jtomko at redhat.com>
>Fixes: 71efb59a4de7c51b1bc889a316f1796ebf55738f
>https://bugzilla.redhat.com/show_bug.cgi?id=1861176

Reviewed-by: Martin Kletzander <mkletzan at redhat.com>

Any reason why regex_unref does not accept NULLs?  It caught a misuse in the
first case, but the second one could just make the code cleaner.  Maybe we could
create our own auto type over it? =D
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200908/7aae7d9a/attachment-0001.sig>


More information about the libvir-list mailing list