diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-11-25 14:51:50 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-11-26 16:34:57 +1000 |
commit | 904a32d908219d6fea833576f7c31727bd3aea2f (patch) | |
tree | 280be205d4a0054ca70d44680438230d0adc302d | |
parent | 68e488725a95508378d8a24a9da609a7e80e2ef7 (diff) |
Fix crash for enable/disable without a device argument
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r-- | src/property.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/property.c b/src/property.c index 66a3842..bf04eeb 100644 --- a/src/property.c +++ b/src/property.c @@ -832,12 +832,28 @@ int set_prop(Display *display, int argc, char *argv[], char *name, int disable(Display *display, int argc, char *argv[], char *name, char *desc) { - char *new_argv[3] = { argv[0], "Device Enabled", "0" }; + char *new_argv[3] = { NULL, "Device Enabled", "0" }; + + if (argc != 1) { + fprintf(stderr, "Usage: xinput %s %s\n", name, desc); + return EXIT_FAILURE; + } + + new_argv[0] = argv[0]; + return set_prop(display, 3, new_argv, name, desc); } int enable(Display *display, int argc, char *argv[], char *name, char *desc) { - char *new_argv[3] = { argv[0], "Device Enabled", "1" }; + char *new_argv[3] = { NULL, "Device Enabled", "1" }; + + if (argc != 1) { + fprintf(stderr, "Usage: xinput %s %s\n", name, desc); + return EXIT_FAILURE; + } + + new_argv[0] = argv[0]; + return set_prop(display, 3, new_argv, name, desc); } |