diff options
author | Brian C. Lane <bcl@redhat.com> | 2016-04-11 15:10:51 -0700 |
---|---|---|
committer | Brian C. Lane <bcl@redhat.com> | 2016-04-15 16:19:03 -0700 |
commit | c58f816ffbc0bc4eacfb57d492cbe3b7497ede9f (patch) | |
tree | 19b595eb9cd5be8e37f45abf885716cc6a6e04a5 /libparted | |
parent | 3447264ba9fedf236da92b2199a2b4823b773cf5 (diff) | |
download | parted-c58f816ffbc0bc4eacfb57d492cbe3b7497ede9f.tar.gz |
libparted: Remove fdasd geometry code from alloc_metadata (#1244833)
commit db20944f changed how the trailing_metadata_end is calculated in
dasd_alloc_metadata, removing the need for setting up the anchor struct.
But dasd_alloc_metadata can be called in various contexts, and the
arch_specific->fd may or may not be valid during these calls. This can
result in unpredictable crashes when it uses a stale fd and tries to run
the file image code in fdasd_get_geometry instead of the device code.
The solution is to just drop the unneeded code, and to remember that
arch_specific->fd should only be used when ped_device_open has first
been called.
Resolves: rhbz#1244833
Diffstat (limited to 'libparted')
-rw-r--r-- | libparted/labels/dasd.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/libparted/labels/dasd.c b/libparted/labels/dasd.c index bb32d66..f79a867 100644 --- a/libparted/labels/dasd.c +++ b/libparted/labels/dasd.c @@ -948,7 +948,6 @@ dasd_alloc_metadata (PedDisk* disk) PedPartition* part = NULL; /* initialize solely to placate gcc */ PedPartition* new_part2; PedSector trailing_meta_start, trailing_meta_end; - struct fdasd_anchor anchor; PED_ASSERT (disk != NULL); PED_ASSERT (disk->dev != NULL); @@ -998,10 +997,7 @@ dasd_alloc_metadata (PedDisk* disk) backed up, then restored to a larger size disk, etc. */ trailing_meta_start = part->geom.end + 1; - fdasd_initialize_anchor(&anchor); - fdasd_get_geometry(disk->dev, &anchor, arch_specific->fd); trailing_meta_end = (long long) disk->dev->length - 1; - fdasd_cleanup(&anchor); if (trailing_meta_end >= trailing_meta_start) { new_part2 = ped_partition_new (disk,PED_PARTITION_METADATA, NULL, trailing_meta_start, trailing_meta_end); |