Subject: pkg/18412: x11/xkbset dumps core if the XKB extension is not loaded
To: None <gnats-bugs@gnats.netbsd.org>
From: None <kre@munnari.OZ.AU>
List: netbsd-bugs
Date: 09/25/2002 14:05:28
>Number:         18412
>Category:       pkg
>Synopsis:       x11/xkbset dumps core if the XKB extension is not loaded
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Sep 25 00:09:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Robert Elz
>Release:        NetBSD 1.6F   pkgsrc of 20020924
>Organization:
	Prince of Songkla University
>Environment:
	
	
System: NetBSD fuchsia.cs.mu.OZ.AU 1.6F NetBSD 1.6F (FUCHSIA) #16: Sat Aug 24 14:26:40 ICT 2002 kre@fuchsia.cs.mu.OZ.AU:/usr/obj/sys/FUCHSIA i386
Architecture: i386
Machine: i386
>Description:
	If XKB is not loaded in the X server (perhaps because the
	xkb compiler fails, perhaps because /usr (containing /usr/X11R6)
	is mounted read only, so /usr/X11R6/lib/X11/xkb/compiled cannot
	be written to, then xkbset will dump core (for most usages).
>How-To-Repeat:
	Arrange (one way or another) to not be using xkb.   Run
	xkbset q (or almost any other usage of xkb, aside from printing
	the usage/help message)   Watch for the core dump...
>Fix:
	Create a new file patches/patch-ab containing the following


--- main.c.orig	Thu Aug 17 11:36:15 2000
+++ main.c	Wed Sep 25 01:45:12 2002
@@ -91,6 +91,10 @@
   }
 
   xkb = XkbGetKeyboard(display,XkbControlsMask,XkbUseCoreKbd);
+  if (xkb == 0) {
+      fprintf(stderr, "XKB not supported for display %s\n", getenv("DISPLAY"));
+      exit(1);
+  }
   XkbGetControls(display, XkbAccessXTimeoutMask|XkbAllControlsMask, xkb);
 
   if (query) {
>Release-Note:
>Audit-Trail:
>Unformatted: