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...