summaryrefslogtreecommitdiff
path: root/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit
diff options
context:
space:
mode:
authorjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>2011-03-30 19:33:03 +0000
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>2011-03-30 19:33:03 +0000
commit33c031ee2092282a069ce07d30202082ceaf61fe (patch)
treeaf76c06a5c4f476e9dfe23096ff2bc0295beaee1 /ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit
parent6b825919f1c16b07b5cac7fc5e298fbeb530d888 (diff)
downloadedk2-platforms-33c031ee2092282a069ce07d30202082ceaf61fe.tar.xz
pointer verification (not NULL) and buffer overrun fixes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11459 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit')
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c6
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c2
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c2
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/Misc.c13
4 files changed, 13 insertions, 10 deletions
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c
index 60e0b75435..675850cff4 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.c
@@ -637,7 +637,7 @@ HBufferImageRestoreMousePosition (
CurrentLine = HBufferImage.CurrentLine;
Line = HMoveLine (FRow - HBufferImage.BufferPosition.Row);
- if (FColumn > Line->Size) {
+ if (Line == NULL || FColumn > Line->Size) {
HasCharacter = FALSE;
}
@@ -1620,7 +1620,7 @@ Returns:
//
HBufferImage.BufferPosition.Row = NewFilePosRow;
if (RowGap <= 0) {
- Abs = -RowGap;
+ Abs = (UINTN)ABS(RowGap);
HBufferImage.DisplayPosition.Row -= Abs;
} else {
HBufferImage.DisplayPosition.Row += RowGap;
@@ -1931,7 +1931,7 @@ Returns:
//
// if that line, is not that long, so move to the end of that line
//
- if (FCol > Line->Size) {
+ if (Line != NULL && FCol > Line->Size) {
FCol = Line->Size + 1;
HighBits = TRUE;
}
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c
index 57cefb882c..fd6387a20a 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/FileImage.c
@@ -383,7 +383,7 @@ Returns:
//
// if is the old file
//
- if (StrCmp (FileName, HFileImage.FileName) == 0) {
+ if (HFileImage.FileName != NULL && FileName != NULL && StrCmp (FileName, HFileImage.FileName) == 0) {
//
// check whether file exists on disk
//
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c
index 0a97a6ca29..53718c7751 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/HexEdit.c
@@ -110,7 +110,7 @@ ShellCommandRunHexEdit (
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
Name = ShellCommandLineGetRawValue(Package, 1);
- if (!IsValidFileName(Name)) {
+ if (Name == NULL || !IsValidFileName(Name)) {
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Name);
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/Misc.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/Misc.c
index 8ae21450c4..da11789625 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/Misc.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/Misc.c
@@ -256,10 +256,10 @@ Returns:
// do not set currentline to Line
//
if (Count <= 0) {
- AbsCount = -Count;
+ AbsCount = (UINTN)ABS(Count);
Line = _HLineRetreat (AbsCount);
} else {
- Line = _HLineAdvance (Count);
+ Line = _HLineAdvance ((UINTN)Count);
}
return Line;
@@ -297,10 +297,10 @@ Returns:
// >0: advance
//
if (Count <= 0) {
- AbsCount = -Count;
+ AbsCount = (UINTN)ABS(Count);
Line = _HLineRetreat (AbsCount);
} else {
- Line = _HLineAdvance (Count);
+ Line = _HLineAdvance ((UINTN)Count);
}
if (Line == NULL) {
@@ -399,7 +399,10 @@ Returns:
Lenp = StrLen (Pat);
Lens = StrLen (Str);
- Failure = AllocateZeroPool (Lenp * sizeof (INTN));
+ Failure = AllocateZeroPool ((UINTN)(Lenp * sizeof (INTN)));
+ if (Failure == NULL) {
+ return 0;
+ }
Failure[0] = -1;
for (j = 1; j < Lenp; j++) {
i = Failure[j - 1];