From: Peter Hutterer Date: Mon, 25 Nov 2013 04:51:50 +0000 (+1000) Subject: Fix crash for enable/disable without a device argument X-Git-Url: https://diplodocus.org/git/xorg-xinput/commitdiff_plain/904a32d908219d6fea833576f7c31727bd3aea2f?hp=68e488725a95508378d8a24a9da609a7e80e2ef7 Fix crash for enable/disable without a device argument Signed-off-by: Peter Hutterer Reviewed-by: Alan Coopersmith --- 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); }