Hi All, For freeing GMatchInfo struct, a special function is required. I'm not sure is it possible to use g_autoptr in this case or no. In GLib example https://developer.gnome.org/glib/stable/glib-Perl-compatible-regular-expressions.html#g-regex-match, g_match_info_free is used directly. Best wishes, Kostiantyn Kostiuk On Thu, Jun 10, 2021 at 5:41 PM Marc-André Lureau < marcandre.lureau@gmail.com> wrote: > Hi > > On Thu, Jun 10, 2021 at 6:38 PM Kostiantyn Kostiuk > wrote: > >> The g_regex_match function creates match_info even if it >> returns FALSE. So we should always call g_match_info_free. >> >> Signed-off-by: Kostiantyn Kostiuk >> --- >> qga/commands-win32.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/qga/commands-win32.c b/qga/commands-win32.c >> index 300b87c859..e8bc3df306 100644 >> --- a/qga/commands-win32.c >> +++ b/qga/commands-win32.c >> @@ -2497,6 +2497,7 @@ GuestDeviceInfoList *qmp_guest_get_devices(Error >> **errp) >> GMatchInfo *match_info; >> > > What about using g_autoptr instead? > > GuestDeviceIdPCI *id; >> if (!g_regex_match(device_pci_re, hw_ids[j], 0, >> &match_info)) { >> + g_match_info_free(match_info); >> continue; >> } >> skip = false; >> -- >> 2.25.1 >> >> >> > > -- > Marc-André Lureau >