From 12f49354e67df6477a690bf8dd4d919a679da19a Mon Sep 17 00:00:00 2001 From: Hao Wu Date: Thu, 24 Nov 2016 10:26:06 +0800 Subject: [PATCH] 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 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu Reviewed-by: Jiewen Yao --- .../EbcDxe/EbcDebugger/EdbCmdBreakpoint.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c index 4be6dd42b6..f06963f7d7 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 @@ Returns: // 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 @@ Returns: // 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 @@ Returns: // Get breakpoint index // Index = Atoi(CommandArg); + if (Index == (UINTN) -1) { + EDBPrint (L"BreakpointEnable Argument error!\n"); + return EFI_DEBUG_CONTINUE; + } // // Enable breakpoint -- 2.39.2