summaryrefslogtreecommitdiff
path: root/firmware/lib/cgptlib
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2010-08-27 09:31:26 -0700
committerBill Richardson <wfrichar@chromium.org>2010-08-27 09:31:26 -0700
commitaa8eda4f97f43a51bfec4fc096635565617a89e0 (patch)
treef38ba6d6e59dccd6a6c4770f12a0b7769864641f /firmware/lib/cgptlib
parent5896b9664d088699e246de964a7c374af663a34e (diff)
downloadvboot-aa8eda4f97f43a51bfec4fc096635565617a89e0.tar.gz
More cgptlib tests
Add some extra cases to SanityCheckTest() to test both header and entries being garbled at either end of the disk. Add DuplicateUniqueGuidTest() to check that GPTs having duplicate UniqueGuids in the entries are rejected. We can only check this per-disk, of course. Made some changes to the library to enforce the UniqueGuid requirement that I just started testing for. BUG=chromium-os:4854 Review URL: http://codereview.chromium.org/3135044 Change-Id: I86458faf9cc99aa3f29aac0d5b144dbd05067181
Diffstat (limited to 'firmware/lib/cgptlib')
-rw-r--r--firmware/lib/cgptlib/cgptlib_internal.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/lib/cgptlib/cgptlib_internal.c b/firmware/lib/cgptlib/cgptlib_internal.c
index a0c16886..ee3c87f1 100644
--- a/firmware/lib/cgptlib/cgptlib_internal.c
+++ b/firmware/lib/cgptlib/cgptlib_internal.c
@@ -152,6 +152,10 @@ int CheckEntries(GptEntry* entries, GptHeader* h) {
if ((entry->ending_lba >= e2->starting_lba) &&
(entry->ending_lba <= e2->ending_lba))
return 1;
+
+ /* UniqueGuid field must be unique. */
+ if (0 == Memcmp(&entry->unique, &e2->unique, sizeof(Guid)))
+ return 1;
}
}