OSDN Git Service

gpt: require that the backup table's AlternateLBA is 1
authorJim Meyering <meyering@redhat.com>
Mon, 19 Oct 2009 18:14:44 +0000 (20:14 +0200)
committerJim Meyering <meyering@redhat.com>
Fri, 23 Oct 2009 16:09:41 +0000 (18:09 +0200)
* libparted/labels/gpt.c (_header_is_valid): When checking
the backup header, ensure that its AlternateLBA is 1.

libparted/labels/gpt.c

index 5131ebe..8e30d00 100644 (file)
@@ -619,6 +619,10 @@ _header_is_valid (const PedDevice *dev, GuidPartitionTableHeader_t *gpt,
   if (PED_LE64_TO_CPU (gpt->MyLBA) != my_lba)
     return 0;
 
+  /* The backup table's AlternateLBA must be 1.  */
+  if (my_lba != 1 && PED_LE64_TO_CPU (gpt->AlternateLBA) != 1)
+    return 0;
+
   origcrc = gpt->HeaderCRC32;
   gpt->HeaderCRC32 = 0;
   crc = pth_crc32 (dev, gpt);