} else if (Param2 != NULL && Handle2 == NULL) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, Param2);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } else if (Handle2 != NULL && Handle1 != NULL && EFI_ERROR(gBS->OpenProtocol(Handle2, &gEfiDriverBindingProtocolGuid, NULL, gImageHandle, NULL, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, Param2);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
Status = ConvertAndConnectControllers(Handle1, Handle2, ShellCommandLineGetFlag(Package, L"-r"), (BOOLEAN)(Count!=0));\r
if (EFI_ERROR(Status)) {\r
\r
ShellStatus = SHELL_SUCCESS;\r
\r
+ if (\r
+ StrStr(Name, L"%") != NULL ||\r
+ StrStr(Name, L"^") != NULL ||\r
+ StrStr(Name, L"*") != NULL ||\r
+ StrStr(Name, L"+") != NULL ||\r
+ StrStr(Name, L"=") != NULL ||\r
+ StrStr(Name, L"[") != NULL ||\r
+ StrStr(Name, L"]") != NULL ||\r
+ StrStr(Name, L"|") != NULL ||\r
+ StrStr(Name, L":") != NULL ||\r
+ StrStr(Name, L";") != NULL ||\r
+ StrStr(Name, L"\"") != NULL ||\r
+ StrStr(Name, L"<") != NULL ||\r
+ StrStr(Name, L">") != NULL ||\r
+ StrStr(Name, L"?") != NULL ||\r
+ StrStr(Name, L"/") != NULL ||\r
+ StrStr(Name, L" ") != NULL\r
+ ){\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, Name);\r
+ return (SHELL_INVALID_PARAMETER);\r
+ }\r
+\r
Status = gEfiShellProtocol->OpenFileByName(\r
Path,\r
&ShellFileHandle,\r
\r
if (EFI_ERROR(Status) || ShellFileHandle == NULL) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, Path);\r
- ShellStatus = SHELL_ACCESS_DENIED;\r
- return (ShellStatus);\r
+ return (SHELL_ACCESS_DENIED);\r
}\r
\r
//\r