diff options
author | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-01-20 12:55:02 +0000 |
---|---|---|
committer | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-01-20 12:55:02 +0000 |
commit | 40a06b0ca865395b938f9411ab1b9a2c718f1c5b (patch) | |
tree | 072c1682191b925d3aa4f836018b7b0195b72963 /MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c | |
parent | 7bfc66a284e167ef9e63855a2fedee3559933496 (diff) | |
download | edk2-platforms-40a06b0ca865395b938f9411ab1b9a2c718f1c5b.tar.xz |
K8:
1) Replace immediate constant with MACRO.
2) Add in ASSERT for NULL before dereferencing pointers and after memory allocation.
3) Add a return statement in ProcessOptions to handle the mismatch between the value stored and the opcode for one-of-option in orderedlist opcode. This case occurs when the one-of-optoin entry in OrderedList get deleted.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7320 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c')
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c index 956db88966..adc0cf8384 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c @@ -188,6 +188,8 @@ DisplayPageFrame ( CHAR16 *StrFrontPageBanner;
UINTN Row;
EFI_SCREEN_DESCRIPTOR LocalScreen;
+ UINTN RowIdx;
+ UINTN ColumnIdx;
ZeroMem (&LocalScreen, sizeof (EFI_SCREEN_DESCRIPTOR));
gST->ConOut->QueryMode (gST->ConOut, gST->ConOut->Mode->Mode, &LocalScreen.RightColumn, &LocalScreen.BottomRow);
@@ -229,9 +231,15 @@ DisplayPageFrame ( Alignment < BANNER_COLUMNS + (UINT8) LocalScreen.LeftColumn;
Alignment++
) {
- if (BannerData->Banner[Line - (UINT8) LocalScreen.TopRow][Alignment - (UINT8) LocalScreen.LeftColumn] != 0x0000) {
+ RowIdx = Line - (UINT8) LocalScreen.TopRow;
+ ColumnIdx = Alignment - (UINT8) LocalScreen.LeftColumn;
+
+ ASSERT (RowIdx < BANNER_HEIGHT);
+ ASSERT (ColumnIdx < BANNER_COLUMNS);
+
+ if (BannerData->Banner[RowIdx][ColumnIdx] != 0x0000) {
StrFrontPageBanner = GetToken (
- BannerData->Banner[Line - (UINT8) LocalScreen.TopRow][Alignment - (UINT8) LocalScreen.LeftColumn],
+ BannerData->Banner[RowIdx][ColumnIdx],
FrontPageHandle
);
} else {
|