From a2d6932ad48f2cbfcc4c5fb8272e47106d08ac78 Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Mon, 1 Jul 2013 19:39:30 +0200 Subject: [PATCH] xkb: don't call atoi(NULL) when parsing argv If the -ardelay or -arinterval options have no argument, there's no point trying to read it. See http://www.forallsecure.com/bug-reports/feb3db57fc206d8df22ca53a6907f74973876272/ Reported-by: Alexandre Rebert Signed-off-by: Julien Cristau Reviewed-by: Alan Coopersmith Signed-off-by: Peter Hutterer --- xkb/xkbInit.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c index 5308a29df..f72655fc3 100644 --- a/xkb/xkbInit.c +++ b/xkb/xkbInit.c @@ -759,13 +759,15 @@ XkbProcessArguments(int argc, char *argv[], int i) if ((strcmp(argv[i], "-ardelay") == 0) || (strcmp(argv[i], "-ar1") == 0)) { /* -ardelay int */ if (++i >= argc) UseMsg(); - XkbDfltRepeatDelay = (long) atoi(argv[i]); + else + XkbDfltRepeatDelay = (long) atoi(argv[i]); return 2; } if ((strcmp(argv[i], "-arinterval") == 0) || (strcmp(argv[i], "-ar2") == 0)) { /* -arinterval int */ if (++i >= argc) UseMsg(); - XkbDfltRepeatInterval = (long) atoi(argv[i]); + else + XkbDfltRepeatInterval = (long) atoi(argv[i]); return 2; } return 0;