diff options
author | ydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-09-29 06:33:23 +0000 |
---|---|---|
committer | ydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-09-29 06:33:23 +0000 |
commit | 04eb20aa85f658b86dd8b6b4fc261d2c9ff2e6a3 (patch) | |
tree | 5c99c188718cfc42810f70ad1f7f6fe0d216e37c /MdeModulePkg/Universal/HiiDatabaseDxe | |
parent | 57ad9d43b16aada77eaf6f6e1aaa0dd94f032bf2 (diff) | |
download | edk2-platforms-04eb20aa85f658b86dd8b6b4fc261d2c9ff2e6a3.tar.xz |
Add pointer check for NULL before dereference it.
Signed-off-by: ydong10
Reviewed-by: rsun3, lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12472 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/HiiDatabaseDxe')
-rw-r--r-- | MdeModulePkg/Universal/HiiDatabaseDxe/String.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c index bec8ce748c..f7a7d7fd55 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c @@ -341,6 +341,7 @@ FindStringBlock ( for (Index = 0; Index < StringCount; Index++) {
BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
*BlockType = *BlockHdr;
*StringBlockAddr = BlockHdr;
*StringTextOffset = StringTextPtr - BlockHdr;
@@ -363,6 +364,7 @@ FindStringBlock ( for (Index = 0; Index < StringCount; Index++) {
BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
*BlockType = *BlockHdr;
*StringBlockAddr = BlockHdr;
*StringTextOffset = StringTextPtr - BlockHdr;
@@ -406,6 +408,7 @@ FindStringBlock ( GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
BlockSize += StringSize;
if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
*BlockType = *BlockHdr;
*StringBlockAddr = BlockHdr;
*StringTextOffset = StringTextPtr - BlockHdr;
@@ -429,6 +432,7 @@ FindStringBlock ( GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
BlockSize += StringSize;
if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
*BlockType = *BlockHdr;
*StringBlockAddr = BlockHdr;
*StringTextOffset = StringTextPtr - BlockHdr;
@@ -572,7 +576,7 @@ FindStringBlock ( //
// Get last string ID
//
- if (StringId == (EFI_STRING_ID) (-1)) {
+ if (StringId == (EFI_STRING_ID) (-1) && LastStringId != NULL) {
*LastStringId = (EFI_STRING_ID) (CurrentStringId - 1);
return EFI_SUCCESS;
}
|