| From 09f1e5b15b769e1122f0a8d7cae0820038992312 Mon Sep 17 00:00:00 2001 |
| From: Julien Cristau <jcristau@debian.org> |
| Date: Sun, 7 Oct 2012 18:40:35 +0200 |
| Subject: [PATCH] Revert "kinput: allocate enough space for null character." |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| This reverts commit 531785dd746d64ef7f473a83ca73bb20e74b6fca. |
| |
| The above commit breaks Xephyr option parsing. Andrzej writes: |
| |
| Xephyr -retro -keybd evdev,,device=/dev/input/event2,xkbrules=evdev,xkbmodel=evdev,xkblayout=pl -mouse evdev,,device=/dev/input/event1 :3 |
| |
| results in: |
| |
| <snip> |
| Pointer option key (device=) of value (/dev/input/event1) not assigned! |
| Kbd option key (device=) of value (/dev/input/event2) not assigned! |
| Kbd option key (xkbrules=) of value (evdev) not assigned! |
| Kbd option key (xkbmodel=) of value (evdev) not assigned! |
| Kbd option key (xkblayout=) of value (pl) not assigned! |
| <snip> |
| |
| The effect of the patch is that the "key=value" pairs are parsed in such |
| a way that the key is added an "equals" sign to it and we end up with |
| keys like "device=" instead of "device". This in turn has effect on |
| KdParsePointerOptions and KdParseKbdOptions: the key does not match |
| any choice presented in the "switch" statement, and so "Pointer/Kbd |
| option key (...) of value (...) not assigned!" happens, making all |
| "key=value" options inaccessible to the user. Reverting the patch makes |
| them available again. |
| |
| Reference: http://bugs.debian.org/689246 |
| Reported-by: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com> |
| Signed-off-by: Julien Cristau <jcristau@debian.org> |
| Cc: Dave Airlie <airlied@redhat.com> |
| Reviewed-by: SΓΈren Sandmann <ssp@redhat.com> |
| Signed-off-by: Keith Packard <keithp@keithp.com> |
| --- |
| hw/kdrive/src/kinput.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c |
| index d35dcf8..b1068bb 100644 |
| --- a/hw/kdrive/src/kinput.c |
| +++ b/hw/kdrive/src/kinput.c |
| @@ -1034,7 +1034,7 @@ KdGetOptions(InputOption **options, char *string) |
| |
| if (strchr(string, '=')) { |
| tam_key = (strchr(string, '=') - string); |
| - key = strndup(string, tam_key + 1); |
| + key = strndup(string, tam_key); |
| if (!key) |
| goto out; |
| |
| -- |
| 1.7.10.4 |
| |