From d416252072e0de7bc47d93edcdea7b116704214c Mon Sep 17 00:00:00 2001 From: vanjeff Date: Thu, 19 Jan 2012 06:43:48 +0000 Subject: Sync patch r12213 from main trunk. Fixed memory leak and buffer overrun for string op-code. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/branches/UDK2010@12939 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/SetupBrowserDxe/Setup.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c index dca0e78968..321684bafe 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c @@ -1881,7 +1881,11 @@ GetQuestionDefault ( if (StrValue == NULL) { return EFI_NOT_FOUND; } - Question->BufferValue = AllocateCopyPool (StrSize (StrValue), StrValue); + if (Question->StorageWidth > StrSize (StrValue)) { + CopyMem (Question->BufferValue, StrValue, StrSize (StrValue)); + } else { + CopyMem (Question->BufferValue, StrValue, Question->StorageWidth); + } } return EFI_SUCCESS; -- cgit