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

Bug#681506: xserver-xorg-input-mouse: crash on kfreebsd-*



Package: xserver-xorg-input-mouse
Version: 1:1.7.2-2
Severity: serious
Tags: patch
User: debian-bsd@lists.debian.org
Usertags: kfreebsd
X-Debbugs-Cc: debian-bsd@lists.debian.org

Hi.

The current version of xserver segfaults under kfreebsd-amd64.

[   237.968] (II) Using input driver 'mouse' for 'Configured Mouse'
[   237.968] (**) Option "CorePointer" "on"
[   237.968] (**) Configured Mouse: always reports core events
[   237.968]
[   237.968] Backtrace:
[   237.968] 0: Xorg (xorg_backtrace+0x36) [0x5641a6]
[   237.968] 1: Xorg (0x400000+0x167cc9) [0x567cc9]
[   237.968] 2: /lib/x86_64-kfreebsd-gnu/libpthread.so.0 (0x8014cc000+0xbf04) [0x8014d7f04]


It is due to buggy workaround of gcc bug #665390.
Please just replace bsd-array-bounds.diff with attached one.

I believe it will solve also #678124 and
http://lists.debian.org/debian-bsd/2012/07/msg00068.html


Petr
Index: xserver-xorg-input-mouse/src/bsd_mouse.c
===================================================================
--- xserver-xorg-input-mouse.orig/src/bsd_mouse.c
+++ xserver-xorg-input-mouse/src/bsd_mouse.c
@@ -139,10 +139,10 @@ CheckProtocol(const char *protocol)
 {
     int i;
 
-    for (i = 0; internalNames[i]; i++)
+    for (i = -1; internalNames[++i];)
 	if (xf86NameCmp(protocol, internalNames[i]) == 0)
 	    return TRUE;
-    for (i = 0; miscNames[i]; i++)
+    for (i = -1; miscNames[++i];)
 	if (xf86NameCmp(protocol, miscNames[i]) == 0)
 	    return TRUE;
     return FALSE;

Reply to: