Message ID | 20211213111554.62394-6-konstantin@daynix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | gqa-win: get_pci_info: Fix memory leak | expand |
On Mon, Dec 13, 2021 at 3:16 PM Kostiantyn Kostiuk <konstantin@daynix.com> wrote: > > Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com> > Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> (250loc.. the function would deserve to be refactored to not be so long..) > --- > qga/commands-win32.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c > index 6bde5260e8..96737f33e1 100644 > --- a/qga/commands-win32.c > +++ b/qga/commands-win32.c > @@ -541,9 +541,9 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp) > dev_info_data.cbSize = sizeof(SP_DEVINFO_DATA); > dev_iface_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); > for (i = 0; SetupDiEnumDeviceInfo(dev_info, i, &dev_info_data); i++) { > - PSP_DEVICE_INTERFACE_DETAIL_DATA pdev_iface_detail_data = NULL; > + g_autofree PSP_DEVICE_INTERFACE_DETAIL_DATA pdev_iface_detail_data = NULL; > STORAGE_DEVICE_NUMBER sdn; > - char *parent_dev_id = NULL; > + g_autofree char *parent_dev_id = NULL; > SP_DEVINFO_DATA parent_dev_info_data; > DWORD j; > DWORD size = 0; > @@ -580,7 +580,6 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp) > dev_file = CreateFile(pdev_iface_detail_data->DevicePath, 0, > FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, > NULL); > - g_free(pdev_iface_detail_data); > > if (!DeviceIoControl(dev_file, IOCTL_STORAGE_GET_DEVICE_NUMBER, > NULL, 0, &sdn, sizeof(sdn), &size, NULL)) { > @@ -675,7 +674,6 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp) > parent_dev_info = > SetupDiGetClassDevs(&GUID_DEVINTERFACE_STORAGEPORT, parent_dev_id, > NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); > - g_free(parent_dev_id); > > if (parent_dev_info == INVALID_HANDLE_VALUE) { > error_setg_win32(errp, GetLastError(), > -- > 2.25.1 >
diff --git a/qga/commands-win32.c b/qga/commands-win32.c index 6bde5260e8..96737f33e1 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -541,9 +541,9 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp) dev_info_data.cbSize = sizeof(SP_DEVINFO_DATA); dev_iface_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); for (i = 0; SetupDiEnumDeviceInfo(dev_info, i, &dev_info_data); i++) { - PSP_DEVICE_INTERFACE_DETAIL_DATA pdev_iface_detail_data = NULL; + g_autofree PSP_DEVICE_INTERFACE_DETAIL_DATA pdev_iface_detail_data = NULL; STORAGE_DEVICE_NUMBER sdn; - char *parent_dev_id = NULL; + g_autofree char *parent_dev_id = NULL; SP_DEVINFO_DATA parent_dev_info_data; DWORD j; DWORD size = 0; @@ -580,7 +580,6 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp) dev_file = CreateFile(pdev_iface_detail_data->DevicePath, 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - g_free(pdev_iface_detail_data); if (!DeviceIoControl(dev_file, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &sdn, sizeof(sdn), &size, NULL)) { @@ -675,7 +674,6 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp) parent_dev_info = SetupDiGetClassDevs(&GUID_DEVINTERFACE_STORAGEPORT, parent_dev_id, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); - g_free(parent_dev_id); if (parent_dev_info == INVALID_HANDLE_VALUE) { error_setg_win32(errp, GetLastError(),