[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: