md(8) panic

Alex Lyashkov shadow at psoft.net
Thu May 13 06:00:23 PDT 2004


В Чтв, 13.05.2004, в 15:29, Pawel Jakub Dawidek пишет:
> On Wed, May 12, 2004 at 02:08:05PM +0100, Mike Bristow wrote:
> +> Hi,
> +> 
> +> I am trying to access some ancient 5 1/4" floppies, with 256 byte
> +> sectors.  Leaving aside the interesting hardware problems, the
> +> filesystem on these disks is (surprisingly enough) not supported on
> +> -CURRENT.  While attempting to write one, I ran:
> +> 
> +> # mdconfig -a -t malloc -S 256 -s 20
> +> 
> +> Thinking that this would give me some fake media to play with.  Instead,
> +> it panics the box.
> +> 
> +> This happens at line 809 of md.c version 1.222 which says:
> +> 
> +> sc->nsect /= (sc->secsize / DEV_BSIZE);
> +> 
> +> (where sc->secsize has been initialised to 256, as per 
> +> my request).
> +> 
> +> It would be easy to check for, and reject, such requests, but should
> +> md(8) allow people to create such devices?  Or am I being silly in even
> +> asking for it?
> 
> This sector size is valid and shouldn't be rejected.
> This patch works for me:
> 
> 	http://people.freebsd.org/~pjd/patches/md.c.3.patch
in patch
+	sc->nsect = (mdio->md_size * DEV_BSIZE) / sc->secsize;
why not 
+	sc->nsect = (mdio->md_size / sc->secsize ) * DEV_BSIZE ;

for avoid posible overflow in mdio->md_size * DEV_BSIZE

-- 
Alex Lyashkov <shadow at psoft.net>
PSoft


More information about the freebsd-hackers mailing list