diff options
Diffstat (limited to 'cgpt/cgpt_prioritize.c')
-rw-r--r-- | cgpt/cgpt_prioritize.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/cgpt/cgpt_prioritize.c b/cgpt/cgpt_prioritize.c index 45023062..8fc1843e 100644 --- a/cgpt/cgpt_prioritize.c +++ b/cgpt/cgpt_prioritize.c @@ -109,10 +109,17 @@ int CgptPrioritize(CgptPrioritizeParams *params) { if (CGPT_OK != DriveOpen(params->drive_name, &drive, O_RDWR)) return CGPT_FAILED; - if (GPT_SUCCESS != (gpt_retval = GptSanityCheck(&drive.gpt))) { - Error("GptSanityCheck() returned %d: %s\n", - gpt_retval, GptError(gpt_retval)); - return CGPT_FAILED; + if (drive.is_mtd) { + if (drive.mtd.primary.crc32 != MtdHeaderCrc(&drive.mtd.primary)) { + Error("MTD header crc failure\n"); + return CGPT_FAILED; + } + } else { + if (GPT_SUCCESS != (gpt_retval = GptSanityCheck(&drive.gpt))) { + Error("GptSanityCheck() returned %d: %s\n", + gpt_retval, GptError(gpt_retval)); + return CGPT_FAILED; + } } max_part = GetNumberOfEntries(&drive); |