Message ID | 20211214124109.103102-6-konstantin@daynix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | gqa-win: get_pci_info: Fix memory leak | expand |
On Tue, Dec 14, 2021 at 4:41 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> > --- > 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 8588fa8633..3092566313 100644 > --- a/qga/commands-win32.c > +++ b/qga/commands-win32.c > @@ -626,9 +626,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 size = 0; > > @@ -654,7 +654,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)) { > @@ -741,7 +740,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 8588fa8633..3092566313 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -626,9 +626,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 size = 0; @@ -654,7 +654,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)) { @@ -741,7 +740,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(),