qga-win32: Fix memory leak of device information set
The caller of SetupDiGetClassDevs must delete the returned device information set when it is no longer needed by calling SetupDiDestroyDeviceInfoList. Signed-off-by: Li Ping <li.ping288@zte.com.cn> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
32fb354b08
commit
9bd8e9330a
@ -512,7 +512,7 @@ static GuestPCIAddress *get_pci_info(char *guid, Error **errp)
|
|||||||
} else {
|
} else {
|
||||||
error_setg_win32(errp, GetLastError(),
|
error_setg_win32(errp, GetLastError(),
|
||||||
"failed to get device name");
|
"failed to get device name");
|
||||||
goto out;
|
goto free_dev_info;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -560,6 +560,9 @@ static GuestPCIAddress *get_pci_info(char *guid, Error **errp)
|
|||||||
pci->bus = bus;
|
pci->bus = bus;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free_dev_info:
|
||||||
|
SetupDiDestroyDeviceInfoList(dev_info);
|
||||||
out:
|
out:
|
||||||
g_free(buffer);
|
g_free(buffer);
|
||||||
g_free(name);
|
g_free(name);
|
||||||
|
Loading…
Reference in New Issue
Block a user