xfs
[Top] [All Lists]

Re: [PATCH 06/15] mkfs: validate logarithmic parameters sanely

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 06/15] mkfs: validate logarithmic parameters sanely
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue, 3 Dec 2013 10:14:36 +1100
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20131202170601.GB14935@xxxxxxxxxxxxx>
References: <1385689430-10103-1-git-send-email-david@xxxxxxxxxxxxx> <1385689430-10103-7-git-send-email-david@xxxxxxxxxxxxx> <20131202170601.GB14935@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Mon, Dec 02, 2013 at 09:06:01AM -0800, Christoph Hellwig wrote:
> On Fri, Nov 29, 2013 at 12:43:41PM +1100, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@xxxxxxxxxx>
> > 
> > Testing logarithmic paramters like "-n log=<num>" shows that we do a
> > terrible job of validating such input. e.g.:
> > 
> > # mkfs.xfs -f -n log=456858480 /dev/vda
> > .....
> > naming   =version 2              bsize=65536  ascii-ci=0 ftype=0
> > ....
> > 
> > Yeah, I just asked for a block size of 2^456858480, and it didn't
> > get rejected. Great, isn't it?
> > 
> > So, factor out the parsing of logarithmic parameters, and pass in
> > the maximum valid value that they can take. These maximum values
> > might not be completely accurate (e.g. block/sector sizes will
> > affect the eventual valid maximum) but we can get rid of all the
> > overflows and stupidities before we get to fine-grained validity
> > checking later in mkfs once things like block and sector sizes have
> > been finalised.
> 
> Btw, is there any good reason not to deprecate the logarithmic
> parameters?  I can't see why anyone would want to use them, but I see
> lots of potential for confusion (happened to myself in the past).

Yup, I can't see a good reason for keeping them. Indeed, we could
just add a conversion identifier to indicate the value is in a power
of 2 and have cvtnum() do the conversion for us...

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>