OSDN Git Service

gpt: prepare for tables with n_partition_array_entries != 128
authorRobert Herndon <Robert.Herndon@quantum.com>
Sat, 29 Oct 2011 21:03:49 +0000 (23:03 +0200)
committerJim Meyering <meyering@redhat.com>
Thu, 3 Nov 2011 21:09:16 +0000 (22:09 +0100)
* libparted/labels/gpt.c (gpt_read_PE_array): When computing the size
of the partition array entry, use the value of "number of partition
array entries" read from a GPT header, not the default of 128 that we
use when creating new headers.  Details here:
http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10173

libparted/labels/gpt.c

index 4c5f378..e239a2d 100644 (file)
@@ -581,9 +581,8 @@ static void *
 gpt_read_PE_array (PedDisk const *disk, GuidPartitionTableHeader_t const *gpt,
                    size_t *ptes_bytes)
 {
-  GPTDiskData *gpt_disk_data = disk->disk_specific;
   uint32_t p_ent_size = PED_LE32_TO_CPU (gpt->SizeOfPartitionEntry);
-  *ptes_bytes = p_ent_size * gpt_disk_data->entry_count;
+  *ptes_bytes = p_ent_size * PED_LE32_TO_CPU(gpt->NumberOfPartitionEntries);
   size_t ptes_sectors = ped_div_round_up (*ptes_bytes,
                                           disk->dev->sector_size);