Nikolay Sivov : setupapi: Fix use after free in trace message (Coverity).
Alexandre Julliard
julliard at winehq.org
Mon Apr 12 16:11:26 CDT 2021
Module: wine
Branch: master
Commit: babdaffff7b25a1db9059598bd3c85da46469d17
URL: https://source.winehq.org/git/wine.git/?a=commit;h=babdaffff7b25a1db9059598bd3c85da46469d17
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Apr 12 17:28:14 2021 +0300
setupapi: Fix use after free in trace message (Coverity).
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/setupapi/devinst.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 7ff3cb01eb6..0758fef5603 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -1773,7 +1773,7 @@ BOOL WINAPI SetupDiRemoveDevice(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data)
{
SC_HANDLE manager = NULL, service = NULL;
struct device *device;
- WCHAR *service_name;
+ WCHAR *service_name = NULL;
DWORD size;
TRACE("devinfo %p, device_data %p.\n", devinfo, device_data);
@@ -1789,7 +1789,6 @@ BOOL WINAPI SetupDiRemoveDevice(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data)
service_name = malloc(size);
if (!RegGetValueW(device->key, NULL, L"Service", RRF_RT_REG_SZ, NULL, service_name, &size))
service = OpenServiceW(manager, service_name, SERVICE_USER_DEFINED_CONTROL);
- free(service_name);
}
remove_device(device);
@@ -1803,6 +1802,8 @@ BOOL WINAPI SetupDiRemoveDevice(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data)
}
CloseServiceHandle(manager);
+ free(service_name);
+
remove_all_device_ifaces(device);
return TRUE;
More information about the wine-cvs
mailing list