diff --git a/reactos/dll/ntdll/ldr/utils.c b/reactos/dll/ntdll/ldr/utils.c index 2b77c3a84dd..ab129e9ca6e 100644 --- a/reactos/dll/ntdll/ldr/utils.c +++ b/reactos/dll/ntdll/ldr/utils.c @@ -2063,24 +2063,25 @@ Success: } ImportModuleDirectoryCurrent++; } - if(!NT_SUCCESS(Status)) + + if (!NT_SUCCESS(Status)) { NTSTATUS errorStatus = Status; - while(ImportModuleDirectoryCurrent-- >= ImportModuleDirectory) + while (ImportModuleDirectoryCurrent >= ImportModuleDirectory) { ImportedName = (PCHAR)Module->DllBase + ImportModuleDirectoryCurrent->Name; Status = LdrpGetOrLoadModule(NULL, ImportedName, &ImportedModule, FALSE); - if(NT_SUCCESS(Status) && Module != ImportedModule) + if (NT_SUCCESS(Status) && Module != ImportedModule) { Status = LdrpUnloadModule(ImportedModule, FALSE); if (!NT_SUCCESS(Status)) DPRINT1("unable to unload %s\n", ImportedName); } + ImportModuleDirectoryCurrent--; } return errorStatus; } - } if (TlsDirectory && TlsSize > 0)