From: Kostiantyn Kostiuk <konstan...@daynix.com> The g_regex_match function creates match_info even if it returns FALSE. So we should always call g_match_info_free. A better solution is using g_autoptr for match_info variable.
Signed-off-by: Kostiantyn Kostiuk <konstan...@daynix.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Michael Roth <michael.r...@amd.com> --- qga/commands-win32.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/qga/commands-win32.c b/qga/commands-win32.c index 098211e724..7bac0c5d42 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -2459,7 +2459,7 @@ GuestDeviceInfoList *qmp_guest_get_devices(Error **errp) continue; } for (j = 0; hw_ids[j] != NULL; j++) { - GMatchInfo *match_info; + g_autoptr(GMatchInfo) match_info; GuestDeviceIdPCI *id; if (!g_regex_match(device_pci_re, hw_ids[j], 0, &match_info)) { continue; @@ -2476,7 +2476,6 @@ GuestDeviceInfoList *qmp_guest_get_devices(Error **errp) id->vendor_id = g_ascii_strtoull(vendor_id, NULL, 16); id->device_id = g_ascii_strtoull(device_id, NULL, 16); - g_match_info_free(match_info); break; } if (skip) { -- 2.25.1