On Fri, Aug 22, 2014 at 12:16:51PM -0300, Arnaldo Carvalho de Melo wrote:

SNIP

> >  }
> >  
> > +static int setup_sort_order(void)
> > +{
> > +#define BUF_MAX 4096
> 
> This is an arbitrary value, and you will use this just here, so you
> could just have used a number and later used sizeof(buf).
> 
> Anyway, what bothers me is the use of yet another static buffer.
> 
> The thing to use here is asprintf, that will do it all for you, format
> _and_ allocate a buffer the size you need.
> 
> > +   static char buf[BUF_MAX];
> > +
> > +   if (!sort_order || is_strict_order(sort_order))
> > +           return 0;
> > +
> > +   if (!strlen(sort_order + 1)) {
> > +           error("Invalid --fields key: `+'");
> > +           return -EINVAL;
> > +   }
> > +
> > +   scnprintf(buf, BUF_MAX, "%s,%s",
> > +             get_default_sort_order(),
> > +             sort_order + 1);
> > +
> > +   sort_order = buf;
> 
> I.e. it would be better to have this as:
> 
>       char *new_sort_order;
> 
>       if (sort_order[1] == '\0') {
>               error("Invalid --fields key: `+'");
>               return -EINVAL;
>       }
> 
>       if (asprintf(&new_sort_order, "%s,%s",
>                    get_default_sort_order(), sort_order + 1) < 0) {
>               error("Not enough memory to set up --sort");
>               return -ENOMEM;
>       }

ok, will check the asprintf

>               
>       sort_order = new_sort_order;
> 
> > +   return 0;
> 
> 
> Also please fix the error message, there is a cut'n'paste error there :-)

aargh right ;-)

I'll send v2

thanks,
jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to