From 9b70d4380c6ec465de4c03d3037785fc208232ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sun, 27 Apr 2025 23:39:52 +0200 Subject: [PATCH] [FREELDR] Allow empty RDPATH parameter In that case, read the whole partition/disk, instead of the selected file. CORE-14603 --- boot/freeldr/freeldr/disk/ramdisk.c | 8 ++++---- boot/freeldr/freeldr/ntldr/winldr.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/boot/freeldr/freeldr/disk/ramdisk.c b/boot/freeldr/freeldr/disk/ramdisk.c index 6306cad88be..2d111d885d9 100644 --- a/boot/freeldr/freeldr/disk/ramdisk.c +++ b/boot/freeldr/freeldr/disk/ramdisk.c @@ -272,11 +272,11 @@ RamDiskInitialize( } if (*FileName) - { Status = RamDiskLoadVirtualFile(FileName, DefaultPath); - if (Status != ESUCCESS) - return Status; - } + else + Status = RamDiskLoadVirtualFile(DefaultPath, NULL); + if (Status != ESUCCESS) + return Status; } /* Adjust the Ramdisk image length if needed */ diff --git a/boot/freeldr/freeldr/ntldr/winldr.c b/boot/freeldr/freeldr/ntldr/winldr.c index 198c673d962..807cf6c73e4 100644 --- a/boot/freeldr/freeldr/ntldr/winldr.c +++ b/boot/freeldr/freeldr/ntldr/winldr.c @@ -1114,7 +1114,7 @@ LoadAndBootWindows( /* Check if a RAM disk file was given */ FileName = NtLdrGetOptionEx(BootOptions, "RDPATH=", &FileNameLength); - if (FileName && (FileNameLength > 7)) + if (FileName && (FileNameLength >= 7)) { /* Load the RAM disk */ Status = RamDiskInitialize(FALSE, BootOptions, SystemPartition);