- Add params checking. It fixes Autoruns (9.38) crashes

svn path=/trunk/; revision=39548
This commit is contained in:
Dmitry Chapyshev 2009-02-11 13:54:29 +00:00
parent 0491d4e284
commit 2f6e7535b5

View file

@ -914,19 +914,23 @@ SearchPathA (
BufferU.Length = wcslen(BufferU.Buffer) * sizeof(WCHAR); BufferU.Length = wcslen(BufferU.Buffer) * sizeof(WCHAR);
/* convert ansi (or oem) string to unicode */ /* convert ansi (or oem) string to unicode */
if (bIsFileApiAnsi) if (bIsFileApiAnsi)
RtlUnicodeStringToAnsiString (&Buffer, Status = RtlUnicodeStringToAnsiString(&Buffer,
&BufferU, &BufferU,
FALSE); FALSE);
else else
RtlUnicodeStringToOemString (&Buffer, Status = RtlUnicodeStringToOemString(&Buffer,
&BufferU, &BufferU,
FALSE); FALSE);
/* nul-terminate ascii string */
Buffer.Buffer[BufferU.Length / sizeof(WCHAR)] = '\0';
if (NULL != lpFilePart && BufferU.Length != 0) if (NT_SUCCESS(Status) && Buffer.Buffer)
{ {
/* nul-terminate ascii string */
Buffer.Buffer[BufferU.Length / sizeof(WCHAR)] = '\0';
if (NULL != lpFilePart && BufferU.Length != 0)
{
*lpFilePart = strrchr (lpBuffer, '\\') + 1; *lpFilePart = strrchr (lpBuffer, '\\') + 1;
}
} }
} }