[PATCH xkbcomp 2/2] Parse -w1 flag correctly (#66344)

Julien Cristau jcristau at debian.org
Tue Jul 16 11:04:52 PDT 2013


On Tue, Jul 16, 2013 at 11:56:22 -0600, Matt Dew wrote:

> On 07/13/2013 12:15 AM, Alan Coopersmith wrote:
> > On 07/10/13 08:58 PM, Peter Hutterer wrote:
> >> if the flag is "-w", then argv[i][1] is 'w' and unlikely to be a digit.
> >> Access [2] instead, which is either \0 or an actual digit.
> >>
> >> X.Org Bug 66344 <http://bugs.freedesktop.org/show_bug.cgi?id=66344>
> >>
> >> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> >> ---
> >>   xkbcomp.c | 4 ++--
> >>   1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/xkbcomp.c b/xkbcomp.c
> >> index 440d542..fb5dec2 100644
> >> --- a/xkbcomp.c
> >> +++ b/xkbcomp.c
> >> @@ -579,8 +579,8 @@ parseArgs(int argc, char *argv[])
> >>               if ((i >= (argc - 1)) || (!isdigit(argv[i + 1][0])))
> >>               {
> >>                   warningLevel = 0;
> >> -                if (isdigit(argv[i][1]))
> >> -                    if (sscanf(&argv[i][1], "%i", &itmp) == 1)
> >> +                if (isdigit(argv[i][2]))
> >> +                    if (sscanf(&argv[i][2], "%i", &itmp) == 1)
> >>                           warningLevel = itmp;
> >>               }
> >>               else
> >>
> >
> > Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> >
> 
> 
> What if it's a space?  '-w 1'

Then argv[i] is "-w", so argv[i][2] is '\0', and argv[i+1] will be "1".

Cheers,
Julien


More information about the xorg-devel mailing list