]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellNetwork2CommandsLib/Ifconfig6.c
ShellPkg/Dp: Add null pointer check
[mirror_edk2.git] / ShellPkg / Library / UefiShellNetwork2CommandsLib / Ifconfig6.c
index 32dd2845fc3811b5662b71d4ea2056145c69e04c..377a163086cdda94e0559cb8e034e799a493e916 100644 (file)
@@ -2,6 +2,7 @@
   The implementation for Shell command IfConfig6.\r
 \r
   Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -1317,6 +1318,21 @@ IfConfig6SetInterfaceInfo (
 \r
       VarArg= VarArg->Next;\r
 \r
+      if (VarArg != NULL) {\r
+        if (StrCmp (VarArg->Arg, L"host") == 0) {\r
+          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_ERR_INVALID_IP_CONFIG), gShellNetwork2HiiHandle, Status);\r
+          ShellStatus = SHELL_INVALID_PARAMETER;\r
+          goto ON_EXIT;\r
+        } else if (StrCmp (VarArg->Arg, L"gw") == 0) {\r
+          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_ERR_INVALID_GW_CONFIG), gShellNetwork2HiiHandle, Status);\r
+          ShellStatus = SHELL_INVALID_PARAMETER;\r
+          goto ON_EXIT;\r
+        } else if (StrCmp (VarArg->Arg, L"dns") == 0) {\r
+          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_ERR_INVALID_DNS_CONFIG), gShellNetwork2HiiHandle, Status);\r
+          ShellStatus = SHELL_INVALID_PARAMETER;\r
+          goto ON_EXIT;\r
+        }\r
+      }\r
     } else if (StrCmp (VarArg->Arg, L"man") == 0) {\r
       //\r
       // Set manual config policy.\r
@@ -1475,6 +1491,7 @@ IfConfig6SetInterfaceInfo (
             &CfgManAddr[Index].Address,\r
             &CfgManAddr[Index].PrefixLength\r
             );\r
+          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_INFO_NEWLINE), gShellNetwork2HiiHandle);\r
         }\r
       }\r
 \r
@@ -1511,6 +1528,7 @@ IfConfig6SetInterfaceInfo (
 \r
       if (EFI_ERROR (Status)) {\r
         ShellStatus = SHELL_ACCESS_DENIED;\r
+        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_ERR_MAN_GW), gShellNetwork2HiiHandle, Status);\r
         goto ON_EXIT;\r
       }\r
 \r