bug-parted
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: _primary_constraint(): start_geom is uninitialized if min_geom==0 &&


From: Jean-Christian de Rivaz
Subject: Re: _primary_constraint(): start_geom is uninitialized if min_geom==0 && cylinder_size < dev->length. Debian bug #602568
Date: Tue, 09 Nov 2010 14:01:47 +0100
User-agent: Mozilla-Thunderbird 2.0.0.24 (X11/20100329)

Jim Meyering a écrit :
Thank you for the bug report and for tracking down the
offending commit.

That change ensures that this unusual condition is
caught early enough.  Before that change, passing a negative
length to ped_geometry_init would have triggered a failed
assertion or something similarly unpleasant.
Thus, simply reverting it just reintroduces the original problem.

commit c79d91ec71882a1673daae0482aa90c514c63cc1
Author: Jim Meyering <address@hidden>
Date:   Tue Mar 30 16:50:59 2010 +0200

    dos: accommodate very small devices (useful for testing)

    * libparted/labels/dos.c (_primary_constraint): Don't pass a negative
    "device_length" to ped_geometry_init when the underlying device
    has fewer sectors than a "cylinder".

Here's a patch to solve the problem.
It relaxes the constraint to use a starting sector of "1",
if necessary.

Please let me know if it works for you:

Your patch work fine, thank you for providing it.

address@hidden:/home/jcdr/parted-git/parted/build-O0# parted/parted /dev/sdb print
Model: disk2go PURE II (scsi)
Disk /dev/sdb: 5243kB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End     Size    Type     File system  Flags
 1      5120B  5243kB  5238kB  primary

The debug capture in attachment prove that your logic is the right one for this case.

Now I just wonder if parted should display FAT16 in the file system field. Because fdisk do it:

address@hidden:/home/jcdr/parted-git/parted/build-O0# fdisk -l /dev/sdb

Disk /dev/sdb: 5 MB, 5242880 bytes
1 heads, 10 sectors/track, 1024 cylinders
Units = cylinders of 10 * 512 = 5120 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               2        1024        5115    6  FAT16


And parted do it for the /dev/sdc (the regular storage device of this USB key):

address@hidden:/home/jcdr/parted-git/parted/build-O0# parted/parted /dev/sdc print
Model: disk2go PURE II (scsi)
Disk /dev/sdc: 2142MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  2142MB  2142MB  fat16


Jean-Christian de Rivaz

PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]