From 6f85ae4365528d6ff7bd1bea27f68edaa40f1b5c Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 7 Dec 2009 15:05:20 +1000 Subject: xsetwacom: don't try to get/set nonexistant buttons. Signed-off-by: Peter Hutterer --- tools/xsetwacom.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c index 2a44ed7..1331ba8 100644 --- a/tools/xsetwacom.c +++ b/tools/xsetwacom.c @@ -1023,6 +1023,16 @@ static void map_button(Display *dpy, XDevice *dev, param_t* param, int argc, cha return; nmap = XGetDeviceButtonMapping(dpy, dev, map, nmap); + if (btn_no >= nmap) + { + fprintf(stderr, "Button number does not exist on device.\n"); + return; + } else if (ref_button >= nmap) + { + fprintf(stderr, "Reference button number does not exist on device.\n"); + return; + } + if (ref_button != -1) map[btn_no - 1] = map[ref_button - 1]; else @@ -1183,6 +1193,12 @@ static void get_button(Display *dpy, XDevice *dev, param_t *param, int argc, nmap = XGetDeviceButtonMapping(dpy, dev, map, nmap); + if (btn_no > nmap) + { + fprintf(stderr, "Button number does not exist on device.\n"); + return; + } + printf("%d\n", map[btn_no - 1]); XSetDeviceButtonMapping(dpy, dev, map, nmap); -- cgit v1.2.1