summaryrefslogtreecommitdiff
path: root/cgpt/cgpt_prioritize.c
diff options
context:
space:
mode:
Diffstat (limited to 'cgpt/cgpt_prioritize.c')
-rw-r--r--cgpt/cgpt_prioritize.c15
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);