Index: base/system/services/rpcserver.c =================================================================== --- base/system/services/rpcserver.c (révision 56698) +++ base/system/services/rpcserver.c (copie de travail) @@ -405,6 +405,11 @@ DPRINT("ScmConvertToBootPathName %S\n", CanonName); + if (!RelativeName) + return ERROR_INVALID_PARAMETER; + + *RelativeName = NULL; + ServiceNameLen = wcslen(CanonName); /* First check, if it's already good */ @@ -550,7 +555,6 @@ if (BufferSize > 0xFFFD) { DPRINT("Too large buffer required\n"); - *RelativeName = 0; if (SymbolicLinkHandle) NtClose(SymbolicLinkHandle); HeapFree(GetProcessHeap(), 0, Expanded); @@ -635,14 +639,11 @@ } else { + /* Failure */ DPRINT("Error, Status = %08X\n", Status); HeapFree(GetProcessHeap(), 0, Expanded); return ERROR_INVALID_PARAMETER; } - - /* Failure */ - *RelativeName = NULL; - return ERROR_INVALID_PARAMETER; } @@ -1114,7 +1115,7 @@ DesiredAccess = SERVICE_PAUSE_CONTINUE; break; - case SERVICE_INTERROGATE: + case SERVICE_CONTROL_INTERROGATE: DesiredAccess = SERVICE_INTERROGATE; break;