Bug 86335 - omnibook 2005-02-17: obtest segmentation fault
Bug#: 86335 Product:  Gentoo Linux Version: unspecified Platform: x86
OS/Version: Linux Status: RESOLVED Severity: blocker Priority: P2
Resolution: FIXED Assigned To: mobile@gentoo.org Reported By: andrewdk@sbcglobal.net
Component: Applications
URL: 
Summary: omnibook 2005-02-17: obtest segmentation fault
Keywords:  
Status Whiteboard: 
Opened: 2005-03-22 18:12 0000
Description:   Opened: 2005-03-22 18:12 0000
I figure this is a Gentoo bug because obtest is not included with the actual
tarball from sf.net.

Normally, on my HP ze4560us, this command will turn off the mute led:

obtest -k 0x94

But it now segfaults. Strange thing is that it happens with the old version as
well. Might be some other package that broke it but I can't pinpoint it. This
is the strace:

execve("/usr/sbin/obtest", ["obtest", "-k", "0x94"], [/* 45 vars */]) = 0
uname({sys="Linux", node="legobrick", ...}) = 0
brk(0)                                  = 0x804b000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=102062, ...}) = 0
mmap2(NULL, 102062, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fd0000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300P\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1389040, ...}) = 0
mmap2(NULL, 1301692, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7e92000
mmap2(0xb7fca000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x137) = 0xb7fca000
mmap2(0xb7fce000, 7356, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fce000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7e91000
mprotect(0xb7fca000, 4096, PROT_READ)   = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e91a90, limit:1048575,
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0,
useable:1}) = 0
munmap(0xb7fd0000, 102062)              = 0
open("/dev/urandom", O_RDONLY)          = 3
read(3, "@\245I\330", 4)                = 4
close(3)                                = 0
iopl(0x3)                               = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Reproducible: Always
Steps to Reproduce:
1. try to do _anything_ with obtest other than making it give the usage message

Actual Results:  
segfault

Expected Results:  
... No segfault..

Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.4.3,
glibc-2.3.4.20050125-r1,
2.6.11-love2 i686)
=================================================================
System uname: 2.6.11-love2 i686 mobile AMD Athlon(tm) XP2500+
Gentoo Base System version 1.6.10
Python:              dev-lang/python-2.3.5 [2.3.5 (#1, Mar  6 2005, 13:52:53)]
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[enabled]
dev-lang/python:     2.3.5
sys-devel/autoconf:  2.59-r6, 2.13
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r6
sys-devel/libtool:   1.5.14
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=athlon-xp -pipe -ftracer -fomit-frame-pointer
-fprefetch-loop-arrays"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=athlon-xp -pipe -ftracer -fomit-frame-pointer
-fprefetch-loop-arrays"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distcc distlocks sandbox sfperms"
GENTOO_MIRRORS="http://lug.mtu.edu/gentoo/"
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="x86 3dnow X Xaw3d aalib acpi aim alsa apache2 avi bash-completion berkdb
bitmap-fonts bzip2 cairo cdparanoia cdr crypt cscope cups curl dba dri dvd
emboss encode faad fam flac flash foomaticdb fortran ftp gb gd gdbm gif
gimp-print glx gnome gnutls gphoto2 gpm gstreamer gtk gtk2 gtkhtml hal icq
imagemagick imlib inifile ipv6 jabber jack java jpeg kde ladcca ldap libg++
libwww lzw-tiff mad mbox mikmod mmx mmx2 mng motif mozilla mozsvg mp3 mpeg msn
mysql ncurses nls nptl nptlonly offensive ogg oggvorbis opengl pam pcmcia
pdflib
perl php png pthreads python qt quicktime readline real rtc samba sdl silc
slang
socks5 spell sqlite sse tcltk tcpd tga theora tiff truetype truetype-fonts
trusted type1-fonts unicode usb userlocales utf8 vorbis wifi wmf wxwindows xft
xine xml xml2 xmms xosd xscreensaver xsl xv xvid yahoo zlib"
Unset:  ASFLAGS, CBUILD, CTARGET, LDFLAGS

------- Comment #1 From Andrew D. Keyser (aka Legoguy) 2005-03-22 18:20:31 0000 -------
I should also note that it is not a kernel problem as it was working on this
and previous kernels sometime before my last emerge -uDv world. I went back a
couple kernels, all of which worked before - and all of them segfault now. The
old kernels have the 2004 version too - so it must be something else that broke
this. I guess that's what I'm trying to figure out now.

------- Comment #2 From Andrew D. Keyser (aka Legoguy) 2005-03-22 18:25:21 0000 -------
Looking at logfiles this looks like it's probably a glibc problem.
That or baselayout.

So maybe it should be directed that way - for now I'll stop spamming my own bug (it's tricky to get the bug report perfect the first time..)

------- Comment #3 From Andrew D. Keyser (aka Legoguy) 2005-04-29 11:01:54 0000 -------
Created an attachment (id=57592) [details]
patch, fixes segfault

Don't know why this even worked before, but the 'q' variable was never set in
the case of -r, -c, -k, -i, or -s flags - but it was still operated on after
the switch, so that caused a segfault. Moved the iopl check above the switch
and moved the operations on q into the switch. 
Fixes problem.

------- Comment #4 From Stefan Schweizer 2005-06-12 09:28:53 0000 -------
thanks, fixed