From b21cf3bd5bd75ea831471d12bd37fe07b57ae506 Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Sat, 27 Jul 2024 16:11:08 +0200 Subject: ShellPkg: ShellLevel2StripQuotes: Strip consecutive quotes When a quotation mark was found, the remaining line would be shifted in-place to get rid of it. However, the "walker" index would still be increased and therefore the first character of the shifted part would be skipped. This means a second quotation mark would not be deleted. Signed-off-by: Tormod Volden --- .../Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.c index ae643996aa..46460aeca9 100644 --- a/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.c +++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.c @@ -335,9 +335,11 @@ ShellLevel2StripQuotes ( return EFI_OUT_OF_RESOURCES; } - for (Walker = *CleanString; Walker != NULL && *Walker != CHAR_NULL; Walker++) { + for (Walker = *CleanString; Walker != NULL && *Walker != CHAR_NULL;) { if (*Walker == L'\"') { CopyMem (Walker, Walker+1, StrSize (Walker) - sizeof (Walker[0])); + } else { + Walker++; } } -- cgit