diff --git a/reactos/dll/win32/setupapi/devinst.c b/reactos/dll/win32/setupapi/devinst.c index c1223b8faf0..3b83f6b568b 100644 --- a/reactos/dll/win32/setupapi/devinst.c +++ b/reactos/dll/win32/setupapi/devinst.c @@ -1719,8 +1719,7 @@ SETUP_CreateInterfaceList( rc = ERROR_GEN_FAILURE; goto cleanup; } - if (InstancePath != NULL) - HeapFree(GetProcessHeap(), 0, InstancePath); + HeapFree(GetProcessHeap(), 0, InstancePath); InstancePath = HeapAlloc(GetProcessHeap(), 0, dwInstancePathLength + sizeof(WCHAR)); if (!InstancePath) { @@ -1821,8 +1820,7 @@ SETUP_CreateInterfaceList( InsertTailList(&list->ListHead, &deviceInfo->ListEntry); /* Step 2. Create an interface list for this element */ - if (pSymbolicLink != NULL) - HeapFree(GetProcessHeap(), 0, pSymbolicLink); + HeapFree(GetProcessHeap(), 0, pSymbolicLink); pSymbolicLink = HeapAlloc(GetProcessHeap(), 0, (dwLength + 1) * sizeof(WCHAR)); if (!pSymbolicLink) { @@ -1875,10 +1873,8 @@ cleanup: RegCloseKey(hDeviceInstanceKey); if (hInterfaceKey != INVALID_HANDLE_VALUE) RegCloseKey(hInterfaceKey); - if (InstancePath != NULL) - HeapFree(GetProcessHeap(), 0, InstancePath); - if (pSymbolicLink != NULL) - HeapFree(GetProcessHeap(), 0, pSymbolicLink); + HeapFree(GetProcessHeap(), 0, InstancePath); + HeapFree(GetProcessHeap(), 0, pSymbolicLink); return rc; } @@ -3480,8 +3476,7 @@ cleanup: RegCloseKey(hClassesKey); if (lpGuidString) RpcStringFreeW(&lpGuidString); - if (lpFullGuidString) - HeapFree(GetProcessHeap(), 0, lpFullGuidString); + HeapFree(GetProcessHeap(), 0, lpFullGuidString); return ret; } @@ -4098,12 +4093,12 @@ SetupDiCallClassInstaller( while (!IsListEmpty(&ClassCoInstallersListHead)) { ListEntry = RemoveHeadList(&ClassCoInstallersListHead); - HeapFree(GetProcessHeap(), 0, ListEntry); + HeapFree(GetProcessHeap(), 0, CONTAINING_RECORD(ListEntry, struct CoInstallerElement, ListEntry)); } while (!IsListEmpty(&DeviceCoInstallersListHead)) { ListEntry = RemoveHeadList(&DeviceCoInstallersListHead); - HeapFree(GetProcessHeap(), 0, ListEntry); + HeapFree(GetProcessHeap(), 0, CONTAINING_RECORD(ListEntry, struct CoInstallerElement, ListEntry)); } ret = (rc == NO_ERROR); diff --git a/reactos/dll/win32/setupapi/install.c b/reactos/dll/win32/setupapi/install.c index cf76353deb8..ea0943cb467 100644 --- a/reactos/dll/win32/setupapi/install.c +++ b/reactos/dll/win32/setupapi/install.c @@ -825,11 +825,11 @@ static BOOL needs_callback( HINF hinf, PCWSTR field, void *arg ) switch (info->type) { case 0: - return SetupInstallFromInfSectionW(info->owner, hinf, field, info->flags, + return SetupInstallFromInfSectionW(info->owner, *(HINF*)hinf, field, info->flags, info->key_root, info->src_root, info->copy_flags, info->callback, info->context, info->devinfo, info->devinfo_data); case 1: - return SetupInstallServicesFromInfSectionExW(hinf, field, info->flags, + return SetupInstallServicesFromInfSectionExW(*(HINF*)hinf, field, info->flags, info->devinfo, info->devinfo_data, info->reserved1, info->reserved2); default: ERR("Unknown info type %ld\n", info->type);