[freeldr] Never suppose that buffer in UNICODE_STRING is null terminated. Fixes some...
authorHervé Poussineau <hpoussin@reactos.org>
Sat, 13 Mar 2010 22:56:41 +0000 (22:56 +0000)
committerHervé Poussineau <hpoussin@reactos.org>
Sat, 13 Mar 2010 22:56:41 +0000 (22:56 +0000)
svn path=/trunk/; revision=46190

reactos/boot/freeldr/freeldr/windows/winldr.c

index 4ba7b1b..f3f7cd1 100644 (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;