aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlistair Delva <adelva@google.com>2020-06-02 04:39:02 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-06-02 04:39:02 +0000
commitb7c51353e0d914106241c70e2f758f107f6f8d64 (patch)
treebb087585c4f59eb7318d509de8209afb6d64b1cb
parentca9256d857cdcae985ef8c7e78a1cb89e5d2dd54 (diff)
parent7e46be3a55a0714daed7b44b5416999c2c4643d1 (diff)
downloadgptfdisk-b7c51353e0d914106241c70e2f758f107f6f8d64.tar.gz
ANDROID: Fix heap overflow in sgdisk am: 7e46be3a55
Original change: undetermined Change-Id: I71cd4208bd4d233053255e0c893a1c31bcbc2153
-rw-r--r--gpt.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gpt.cc b/gpt.cc
index 9ad769a..303bdf7 100644
--- a/gpt.cc
+++ b/gpt.cc
@@ -952,7 +952,10 @@ int GPTData::LoadPartitionTable(const struct GPTHeader & header, DiskIO & disk,
uint32_t sizeOfParts, newCRC;
int retval;
- if (disk.OpenForRead()) {
+ if (header.sizeOfPartitionEntries != sizeof(GPTPart)) {
+ cerr << "Error! GPT header contains invalid partition entry size!\n";
+ retval = 0;
+ } else if (disk.OpenForRead()) {
if (sector == 0) {
retval = disk.Seek(header.partitionEntriesLBA);
} else {