Bug#686627: xinput: segfault with just "xinput enable" or "xinput disable"
Package: xinput
Version: 1.6.0-1
Severity: normal
Tags: patch upstream
Dear Maintainer,
when calling either xinput disable or xinput enable, the result is a
Segmentation Fault. The attached patch shows a short usage information
for those subcommands instead.
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages xinput depends on:
ii libc6 2.13-35
ii libx11-6 2:1.5.0-1
ii libxext6 2:1.3.1-2
ii libxi6 2:1.6.1-1
ii libxinerama1 2:1.1.2-1
ii libxrandr2 2:1.3.2-2
xinput recommends no packages.
xinput suggests no packages.
-- no debconf information
>From 0a86b052433dafd58c539b845640ac2e34c7053d Mon Sep 17 00:00:00 2001
From: Timo Paulssen <timonator@perpetuum-immobile.de>
Date: Tue, 4 Sep 2012 02:39:44 +0200
Subject: [PATCH] don't segfault on dis/enable without argument.
---
src/property.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/property.c b/src/property.c
index 14e4308..0f4f7e1 100644
--- a/src/property.c
+++ b/src/property.c
@@ -827,12 +827,20 @@ int set_prop(Display *display, int argc, char *argv[], char *name,
int disable(Display *display, int argc, char *argv[], char *name, char *desc)
{
+ if (argc < 1) {
+ fprintf(stderr, "Usage: xinput %s %s\n", name, desc);
+ return EXIT_FAILURE;
+ }
char *new_argv[3] = { argv[0], "Device Enabled", "0" };
return set_prop(display, 3, new_argv, name, desc);
}
int enable(Display *display, int argc, char *argv[], char *name, char *desc)
{
+ if (argc < 1) {
+ fprintf(stderr, "Usage: xinput %s %s\n", name, desc);
+ return EXIT_FAILURE;
+ }
char *new_argv[3] = { argv[0], "Device Enabled", "1" };
return set_prop(display, 3, new_argv, name, desc);
}
--
1.7.10.4
Reply to: