From 771ececd1288bb2bee8ea6fee61a1a0220914be5 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Sat, 27 Feb 2010 09:04:11 +0000 Subject: [PATCH] Add the missing check for NULL pointer before use it. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10116 6f19259b-4bc3-4df7-8a09-765794883524 --- .../FrameworkHiiOnUefiHiiThunk/UefiIfrParser.c | 7 ++++++- .../Compatibility/FvOnFv2Thunk/FvOnFv2Thunk.c | 3 ++- MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c | 4 ++-- MdeModulePkg/Universal/SetupBrowserDxe/Expression.c | 3 ++- MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c | 2 ++ MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c | 7 +++++++ MdeModulePkg/Universal/SetupBrowserDxe/Ui.h | 2 ++ 7 files changed, 23 insertions(+), 5 deletions(-) diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/UefiIfrParser.c b/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/UefiIfrParser.c index faff074209..f5480d2cb6 100644 --- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/UefiIfrParser.c +++ b/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/UefiIfrParser.c @@ -1,7 +1,7 @@ /** @file Parser for IFR binary encoding. -Copyright (c) 2008, Intel Corporation +Copyright (c) 2008 - 2010, 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 @@ -209,6 +209,7 @@ CreateStorage ( FORMSET_STORAGE *Storage; Storage = AllocateZeroPool (sizeof (FORMSET_STORAGE)); + ASSERT (Storage != NULL); Storage->Signature = FORMSET_STORAGE_SIGNATURE; InsertTailList (&FormSet->StorageListHead, &Storage->Link); @@ -586,6 +587,7 @@ ParseOpCodes ( // Create a new Form for this FormSet // CurrentForm = AllocateZeroPool (sizeof (FORM_BROWSER_FORM)); + ASSERT (CurrentForm != NULL); CurrentForm->Signature = FORM_BROWSER_FORM_SIGNATURE; InitializeListHead (&CurrentForm->StatementListHead); @@ -701,6 +703,7 @@ ParseOpCodes ( // case EFI_IFR_DEFAULTSTORE_OP: DefaultStore = AllocateZeroPool (sizeof (FORMSET_DEFAULTSTORE)); + ASSERT (DefaultStore != NULL); DefaultStore->Signature = FORMSET_DEFAULTSTORE_SIGNATURE; CopyMem (&DefaultStore->DefaultId, &((EFI_IFR_DEFAULTSTORE *) OpCodeData)->DefaultId, sizeof (UINT16)); @@ -917,6 +920,7 @@ ParseOpCodes ( // A Question may have more than one Default value which have different default types. // CurrentDefault = AllocateZeroPool (sizeof (QUESTION_DEFAULT)); + ASSERT (CurrentDefault != NULL); CurrentDefault->Signature = QUESTION_DEFAULT_SIGNATURE; CurrentDefault->Value.Type = ((EFI_IFR_DEFAULT *) OpCodeData)->Type; @@ -940,6 +944,7 @@ ParseOpCodes ( // It create a selection for use in current Question. // CurrentOption = AllocateZeroPool (sizeof (QUESTION_OPTION)); + ASSERT (CurrentOption != NULL); CurrentOption->Signature = QUESTION_OPTION_SIGNATURE; CurrentOption->Flags = ((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags; diff --git a/EdkCompatibilityPkg/Compatibility/FvOnFv2Thunk/FvOnFv2Thunk.c b/EdkCompatibilityPkg/Compatibility/FvOnFv2Thunk/FvOnFv2Thunk.c index ff4165d19e..ef64cc84f1 100644 --- a/EdkCompatibilityPkg/Compatibility/FvOnFv2Thunk/FvOnFv2Thunk.c +++ b/EdkCompatibilityPkg/Compatibility/FvOnFv2Thunk/FvOnFv2Thunk.c @@ -7,7 +7,7 @@ these two conditions are true: 1) Framework module consuming FV is present 2) And the platform only produces FV2 -Copyright (c) 2006 - 2008 Intel Corporation.
+Copyright (c) 2006 - 2010 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 @@ -597,6 +597,7 @@ FvWriteFile ( FirmwareVolume2 = Private->FirmwareVolume2; PiFileData = AllocateCopyPool (sizeof (EFI_FV_WRITE_FILE_DATA), FileData); + ASSERT (PiFileData != NULL); // // Framework Spec assume firmware files are Memory-Mapped. diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c index 2934ab383a..0339565350 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c @@ -3192,7 +3192,7 @@ Exit: @param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance. @param ConfigResp A null-terminated Unicode string in - format. It can be ConfigAltResp format string. + format. @param Block A possibly null array of bytes representing the current block. Only bytes referenced in the ConfigResp string in the block are modified. If @@ -3415,7 +3415,7 @@ Exit: @param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance. @param Configuration A null-terminated Unicode string in - format. It is format. + format. @param Guid A pointer to the GUID value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If Guid is NULL, diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c index 90fdc7462f..45ec96edf1 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c @@ -1729,6 +1729,7 @@ EvaluateExpression ( // Status = GetValueByName (OpCode->VarStorage, OpCode->ValueName, &StrPtr); if (!EFI_ERROR (Status)) { + ASSERT (StrPtr != NULL); TempLength = StrLen (StrPtr); if (OpCode->ValueWidth >= ((TempLength + 1) / 2)) { Value->Type = OpCode->ValueType; @@ -1740,7 +1741,7 @@ EvaluateExpression ( if ((Index & 1) == 0) { TempBuffer [Index/2] = DigitUint8; } else { - TempBuffer [Index/2] = (UINT8) ((DigitUint8 << 4) + TempStr [Index/2]); + TempBuffer [Index/2] = (UINT8) ((DigitUint8 << 4) + TempBuffer [Index/2]); } } } diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c index 5593b6eeb5..7660c6ef1f 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c @@ -1174,6 +1174,7 @@ ParseOpCodes ( // if (CurrentExpression == NULL && MapScopeDepth > 0) { CurrentExpression = CreateExpression (CurrentForm); + ASSERT (MapExpressionList != NULL); InsertTailList (MapExpressionList, &CurrentExpression->Link); if (Scope == 0) { SingleOpCodeExpression = TRUE; @@ -2120,6 +2121,7 @@ ParseOpCodes ( // Status = PopCurrentExpression ((VOID **) &CurrentExpression); ASSERT_EFI_ERROR (Status); + ASSERT (MapScopeDepth > 0); MapScopeDepth --; break; diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c index 6d5a3db2e5..3704596f30 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c @@ -109,6 +109,8 @@ NewStrCat ( hit, then 2 Unicode character will consume an output storage space with size of CHAR16 till a NARROW_CHAR is hit. + If String is NULL, then ASSERT (). + @param String The input string to be counted. @return Storage space for the input string. @@ -123,6 +125,11 @@ GetStringWidth ( UINTN Count; UINTN IncrementValue; + ASSERT (String != NULL); + if (String == NULL) { + return 0; + } + Index = 0; Count = 0; IncrementValue = 1; diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h index 45fb3eba3e..6b65103714 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.h @@ -623,6 +623,8 @@ ClearLines ( hit, then 2 Unicode character will consume an output storage space with size of CHAR16 till a NARROW_CHAR is hit. + If String is NULL, then ASSERT (). + @param String The input string to be counted. @return Storage space for the input string. -- 2.39.2