MdeModulePkg/EbcDebugger: Add check for invalid 'CommandArg'

Add checks for the return value of function Atoi() in EdbCmdBreakpoint.c.
If the input parameter 'CommandArg' contains non-digit character, print
corresponding error message.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c
index 4be6dd4..f06963f 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c
@@ -1,6 +1,6 @@
 /*++

 

-Copyright (c) 2007, Intel Corporation

+Copyright (c) 2007 - 2016, Intel Corporation

 All rights reserved. This program and the accompanying materials

 are licensed and made available under the terms and conditions of the BSD License

 which accompanies this distribution.  The full text of the license may be found at

@@ -461,6 +461,10 @@
   // Get breakpoint index

   //

   Index = Atoi(CommandArg);

+  if (Index == (UINTN) -1) {

+    EDBPrint (L"BreakpointClear Argument error!\n");

+    return EFI_DEBUG_CONTINUE;

+  }

 

   if ((Index >= EFI_DEBUGGER_BREAKPOINT_MAX) ||

       (Index >= DebuggerPrivate->DebuggerBreakpointCount)) {

@@ -534,6 +538,10 @@
   // Get breakpoint index

   //

   Index = Atoi(CommandArg);

+  if (Index == (UINTN) -1) {

+    EDBPrint (L"BreakpointDisable Argument error!\n");

+    return EFI_DEBUG_CONTINUE;

+  }

 

   //

   // Disable breakpoint

@@ -598,6 +606,10 @@
   // Get breakpoint index

   //

   Index = Atoi(CommandArg);

+  if (Index == (UINTN) -1) {

+    EDBPrint (L"BreakpointEnable Argument error!\n");

+    return EFI_DEBUG_CONTINUE;

+  }

 

   //

   // Enable breakpoint