From aa39c4c2690ea3edd7ccdff9148eb0357608d5b2 Mon Sep 17 00:00:00 2001 From: Pascal Terjan Date: Tue, 4 Aug 2009 15:59:18 +0000 Subject: Fix a crash when trying to create a partition on a device with no cylinder_size --- perl-install/partition_table/raw.pm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'perl-install/partition_table') diff --git a/perl-install/partition_table/raw.pm b/perl-install/partition_table/raw.pm index 0a878107c..739e1f384 100644 --- a/perl-install/partition_table/raw.pm +++ b/perl-install/partition_table/raw.pm @@ -79,11 +79,13 @@ sub adjustStart($$) { my ($hd, $part) = @_; my $end = $part->{start} + $part->{size}; - $part->{start} = round_up($part->{start}, - $part->{start} % cylinder_size($hd) < 2 * $hd->{geom}{sectors} ? - $hd->{geom}{sectors} : cylinder_size($hd)); - $part->{size} = $end - $part->{start}; - $part->{size} > 0 or die "adjustStart get a too small partition to handle correctly"; + if(cylinder_size($hd)) { + $part->{start} = round_up($part->{start}, + $part->{start} % cylinder_size($hd) < 2 * $hd->{geom}{sectors} ? + $hd->{geom}{sectors} : cylinder_size($hd)); + $part->{size} = $end - $part->{start}; + $part->{size} > 0 or die "adjustStart get a too small partition to handle correctly"; + } } #- adjusting end to match a cylinder boundary, two methods are used and must #- match at the end, else something is wrong and nothing will be done on -- cgit v1.2.1