From ae79d2f9ec344703f379a557b873efc9bf70cd1e Mon Sep 17 00:00:00 2001 From: lgao4 Date: Wed, 20 May 2009 12:05:45 +0000 Subject: Update HiiDataBase to fix the SCT hang issues by the invalid device path. Update the driver config access protocol extractconfig and routeconfig interface to check the input parameters. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8349 6f19259b-4bc3-4df7-8a09-765794883524 --- .../PlatformDriOverrideDxe/PlatDriOverrideDxe.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'MdeModulePkg/Universal/PlatformDriOverrideDxe') diff --git a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c index 085b8dd5cd..fa7ca9094c 100644 --- a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c +++ b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c @@ -1161,12 +1161,12 @@ PlatOverMngrExtractConfig ( EFI_STATUS Status; EFI_CALLBACK_INFO *Private; EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting; - - if (Request == NULL) { - return EFI_NOT_FOUND; - } - Private = EFI_CALLBACK_INFO_FROM_THIS (This); + if (Progress == NULL || Results == NULL || Request == NULL) { + return EFI_INVALID_PARAMETER; + } + *Progress = Request; + Private = EFI_CALLBACK_INFO_FROM_THIS (This); HiiConfigRouting = Private->HiiConfigRouting; // @@ -1210,6 +1210,15 @@ PlatOverMngrRouteConfig ( UINT16 KeyValue; PLAT_OVER_MNGR_DATA *FakeNvData; + if (Configuration == NULL || Progress == NULL) { + return EFI_INVALID_PARAMETER; + } + *Progress = Configuration; + + if (!HiiIsConfigHdrMatch (Configuration, &mPlatformOverridesManagerGuid, mVariableName)) { + return EFI_NOT_FOUND; + } + Private = EFI_CALLBACK_INFO_FROM_THIS (This); FakeNvData = &Private->FakeNvData; if (!HiiGetBrowserData (&mPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) { @@ -1233,6 +1242,7 @@ PlatOverMngrRouteConfig ( CommintChanges (Private, KeyValue, FakeNvData); } + *Progress = Configuration + StrLen (Configuration); return EFI_SUCCESS; } -- cgit v1.2.3