]> diplodocus.org Git - xorg-xinput/commitdiff
Fix crash for enable/disable without a device argument
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 25 Nov 2013 04:51:50 +0000 (14:51 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 26 Nov 2013 06:34:57 +0000 (16:34 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
src/property.c

index 66a384285b540eff467d3dd7173d5f031aaa845c..bf04eeba4fcd9e43bdeada4f9fcdf2e3d51ae286 100644 (file)
@@ -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)
 {
 
 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)
 {
     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);
 }
     return set_prop(display, 3, new_argv, name, desc);
 }