[freeldr] Never suppose that buffer in UNICODE_STRING is null terminated. Fixes some random failures when loading drivers

svn path=/trunk/; revision=46190
This commit is contained in:
Hervé Poussineau 2010-03-13 22:56:41 +00:00
parent 78f8948c0f
commit 9a46a46011

View file

@ -232,7 +232,7 @@ WinLdrLoadDeviceDriver(PLOADER_PARAMETER_BLOCK LoaderBlock,
PVOID DriverBase;
// Separate the path to file name and directory path
sprintf(DriverPath, "%S", FilePath->Buffer);
snprintf(DriverPath, sizeof(DriverPath), "%wZ", FilePath);
DriverNamePos = strrchr(DriverPath, '\\');
if (DriverNamePos != NULL)
{
@ -261,7 +261,7 @@ WinLdrLoadDeviceDriver(PLOADER_PARAMETER_BLOCK LoaderBlock,
}
// It's not loaded, we have to load it
sprintf(FullPath,"%s%S", BootPath, FilePath->Buffer);
snprintf(FullPath, sizeof(FullPath), "%s%wZ", BootPath, FilePath);
Status = WinLdrLoadImage(FullPath, LoaderBootDriver, &DriverBase);
if (!Status)
return FALSE;