Signed-off-by: Sven Baars sbaars@codeweavers.com --- dlls/setupapi/devinst.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index a21959a262..7be1a34669 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -736,6 +736,7 @@ static void delete_device(struct device *device)
RegCloseKey(device->key); heap_free(device->instanceId); + heap_free(device->drivers);
LIST_FOR_EACH_ENTRY_SAFE(iface, next, &device->interfaces, struct device_iface, entry)
Signed-off-by: Sven Baars sbaars@codeweavers.com --- dlls/setupapi/devinst.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index 7be1a34669..2d8e77eef0 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -4886,7 +4886,10 @@ BOOL WINAPI SetupDiGetDriverInfoDetailA(HDEVINFO devinfo, SP_DEVINFO_DATA *devic if (ret_size) *ret_size = size_needed; if (!detail_data) + { + SetupCloseInfFile(hinf); return TRUE; + }
detail_data->CompatIDsLength = detail_data->CompatIDsOffset = 0; detail_data->HardwareID[0] = 0;
Signed-off-by: Sven Baars sbaars@codeweavers.com --- dlls/setupapi/devinst.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index 2d8e77eef0..f56aee727a 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -4715,7 +4715,8 @@ BOOL WINAPI SetupDiEnumDriverInfoA(HDEVINFO devinfo, SP_DEVINFO_DATA *device_dat
driver_dataW.cbSize = sizeof(driver_dataW); ret = SetupDiEnumDriverInfoW(devinfo, device_data, type, index, &driver_dataW); - driver_data_wtoa(driver_data, &driver_dataW); + if (ret) driver_data_wtoa(driver_data, &driver_dataW); + return ret; }
Signed-off-by: Sven Baars sbaars@codeweavers.com --- dlls/setupapi/devinst.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index f56aee727a..8819d2c4fd 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -4188,7 +4188,11 @@ BOOL WINAPI SetupDiGetINFClassW(PCWSTR inf, LPGUID class_guid, PWSTR class_name, have_name = 0 < dret;
if (dret >= MAX_PATH -1) FIXME("buffer might be too small\n"); - if (have_guid && !have_name) FIXME("class name lookup via guid not implemented\n"); + if (have_guid && !have_name) + { + class_name[0] = '\0'; + FIXME("class name lookup via guid not implemented\n"); + }
if (have_name) {