[pacman-dev] [PATCH 1/2] util.c: ignore trailing whitespace in parseindex

Andrew Gregory andrew.gregory.8 at gmail.com
Wed Apr 3 07:48:22 EDT 2013


On 04/03/13 at 07:14am, Dave Reisner wrote:
> On Tue, Apr 2, 2013 at 7:57 PM, Andrew Gregory
> <andrew.gregory.8 at gmail.com>wrote:
> 
> > strtol already ignores leading whitespace so it doesn't make much sense
> > for us to worry about trailing whitespace.
> >
> 
> What is this actually fixing? The only place we call parseindex from makes
> gratuitous use of both strtok_r (which compresses empty fields -- in this
> case, whitespace and commas), and strtrim's input. Is there actually a
> reproducible case where trailing whitespace (or leading, for that matter)
> can be passed to parseindex?

strtok_r only handles spaces and only the full range is trimmed, not
the individual numbers.  So "1-	2" is valid input, but "1	-2" is not
(those are tabs not spaces).

> >
> > Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
> > ---
> >  src/pacman/util.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/src/pacman/util.c b/src/pacman/util.c
> > index 7b7dace..115f328 100644
> > --- a/src/pacman/util.c
> > +++ b/src/pacman/util.c
> > @@ -1292,6 +1292,10 @@ static int parseindex(char *s, int *val, int min,
> > int max)
> >  {
> >         char *endptr = NULL;
> >         int n = strtol(s, &endptr, 10);
> > +       /* strtol skips leading whitespace, don't worry about trailing
> > whitespace */
> > +       while(isspace(*endptr)) {
> > +                       endptr++;
> > +       }
> >         if(*endptr == '\0') {
> >                 if(n < min || n > max) {
> >                         pm_printf(ALPM_LOG_ERROR,
> > --
> > 1.8.2
> >
> >
> >


More information about the pacman-dev mailing list