TeamSpeak Runtime error

Code:
FISH# cd /usr/ports/audio/teamspeak_client/ && make install clean
===>  Vulnerability check disabled, database not found           
=> ts2_client_rc2_2032.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/.
ts2_client_rc2_2032.tar.bz2                   100% of 7358 kB   91 kBps 00m00s        
=> setduplexfake.so.gz doesn't seem to exist in /usr/ports/distfiles/.                
=> Attempting to fetch from http://www.gsoft.com.au/~doconnor/.                       
setduplexfake.so.gz                           100% of 1929  B  243 kBps               
===>  Extracting for teamspeak_client-2.0.32_2                                        
=> MD5 Checksum OK for ts2_client_rc2_2032.tar.bz2.                                   
=> SHA256 Checksum OK for ts2_client_rc2_2032.tar.bz2.                                
=> MD5 Checksum OK for setduplexfake.so.gz.                                           
=> SHA256 Checksum OK for setduplexfake.so.gz.                                        
===>  Patching for teamspeak_client-2.0.32_2                                          
===>  Configuring for teamspeak_client-2.0.32_2                                       
===>  Installing for teamspeak_client-2.0.32_2                                        
===>   teamspeak_client-2.0.32_2 depends on file: /compat/linux/bin/sh - found        
===>   teamspeak_client-2.0.32_2 depends on file: /compat/linux/lib/libexpat.so.1 - found
===>   teamspeak_client-2.0.32_2 depends on file: /compat/linux/usr/lib/libfontconfig.so.1.3.0 - found
===>   teamspeak_client-2.0.32_2 depends on file: /compat/linux/usr/lib/libjpeg.so.62.0.0 - found
===>   teamspeak_client-2.0.32_2 depends on file: /compat/linux/usr/lib/libXrandr.so.2.1.0 - found
===>   Generating temporary packing list
===>  Checking if audio/teamspeak_client already installed
cd /usr/ports/audio/teamspeak_client/work/ts2_client_rc2_2032/setup.data/image &&  /usr/bin/find * -type d -exec /bin/mkdir -p "/usr/local
/lib/teamspeak_client/{}" \; &&  /usr/bin/find * -type f -exec install  -o root -g wheel -m 444 "{}" "/usr/local/lib/teamspeak_client/{}" \;
cd /usr/ports/audio/teamspeak_client/work/programs &&  /usr/bin/find * -type d -exec /bin/mkdir -p "/usr/local/lib/teamspeak_client/{}" \; &&  
/usr/bin/find * -type f -exec install   -o root -g wheel -m 555 "{}" "/usr/local/lib/teamspeak_client/{}" \;
install  -o root -g wheel -m 555 /usr/ports/audio/teamspeak_client/work/TeamSpeak /usr/local/bin
cd /usr/ports/audio/teamspeak_client/work/doc &&  /usr/bin/find * -type d -exec /bin/mkdir -p "/usr/local/share/doc/teamspeak_client/{}" \; 
&&  /usr/bin/find * -type f -exec install  -o root -g wheel -m 444 "{}" "/usr/local/share/doc/teamspeak_client/{}" \;
===>   Registering installation for teamspeak_client-2.0.32_2
===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/lib/teamspeak_client/TeamSpeak.bin

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.teamspeak.org
===>  Cleaning for teamspeak_client-2.0.32_2
FISH# exit
[B][color="Red"]%TeamSpeak
Runtime error   0 at FFFFD678
Segmentation fault (core dumped)
%[/color][/B]

Code:
%uname -a
FreeBSD FISH.local.bsd 8.0-STABLE FreeBSD 8.0-STABLE #0: Sun Dec 13 00:57:33 EET 2009     [email]root@FISH.local.bsd[/email]:/usr/obj/usr/src/sys/GENERIC  amd64
%
 
Same

Code:
winstonw@ghetto-box:...rts/audio/teamspeak_client$ TeamSpeak                   
Runtime error   0 at FFFFD660
Segmentation fault

Code:
139|winstonw@ghetto-box:...rts/audio/teamspeak_client$ uname -a
FreeBSD ghetto-box.local 8.0-STABLE FreeBSD 8.0-STABLE #10: Fri Apr 16 17:24:21 CDT 2010     root@ghetto-box.local:/usr/obj/usr/src/sys/WINNIE  amd64
 
ditto

Code:
% TeamSpeak
Runtime error   0 at FFFFD440
zsh: segmentation fault (core dumped)  TeamSpeak

Code:
% uname -a
FreeBSD puppet 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:36:49 UTC 2010
    root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
 
It's not that important for me to get this running and I'm (sadly) not an expert on this, but I'll try a few more things out of curiosity.

First thing I discovered, is that there seems to be a problem with the setduplexfake.so. Here is the normal execution sequence that is run inside the TeamSpeak shell script with a trace call of the actual binary:

Code:
% TSHOME=/usr/local/lib/teamspeak_client
% cd $TSHOME
% export LD_LIBRARY_PATH=$TSHOME:$LD_LIBRARY_PATH
% export LD_PRELOAD=$TSHOME/setduplexfake.so
% truss -d ./TeamSpeak.bin
/libexec/ld-elf.so.1: /usr/local/lib/teamspeak_client/setduplexfake.so: unsupported file layout

So it seems that a normal execution attempt will just fail because of this (results in a seg vault).

Code:
file TeamSpeak.bin
TeamSpeak.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped

When I avoide setduplexfake.so (LD_PRELOAD="") I get a long trace with a final SIGSEGV.

Code:
...
0.019242948 linux_open("/compat/linux/lib/tls/libuuid.so.1",0x0,05012541156) ERR#2 'No such file or directory'
0.019323405 linux_open("/compat/linux/lib/libuuid.so.1",0x0,05012541156) = 3 (0x3)
0.019359443 read(3,"\^?ELF\^A\^A\^A\0\0\0\0\0\0\0\0"...,512) = 512 (0x200)
0.019404142 linux_fstat64(0x3,0xffffc930,0x282c4fd0,0x3,0x2,0x6) = 0 (0x0)
0.019450796 linux_mmap2(0x0,0x31f4,0x5,0x802,0x3,0x6) = 684945408 (0x28d37000)
0.019494377 linux_mmap2(0x28d3a000,0x1000,0x3,0x812,0x3,0x6) = 684957696 (0x28d3a000)
0.019542428 close(3)                             = 0 (0x0)
0.019831012 linux_mprotect(0x28cf0000,0x1000,0x1,0x82f5de8,0x82f5de8,0x6) = 0 (0x0)
0.019891075 linux_mprotect(0x28589000,0x64e000,0x3,0x0,0x28589034,0x6) = 0 (0x0)
0.073772225 linux_mprotect(0x28589000,0x64e000,0x5,0x0,0x82f5840,0x6) = 0 (0x0)
0.073925317 linux_pipe(0x82da538,0x0,0x0,0x814aecc,0x96,0x6) = 0 (0x0)
0.073925317 SIGNAL 11 (SIGSEGV)
0.073994600 linux_rt_sigreturn(0xffffd3f8,0xffffd40c,0xffffd40c,0x814aecc,0x96,0x6) = 137007103 (0x82a8fff)
Runtime error   0 at FFFFD4680.074087908 write(2,"Runtime error   0 at FFFFD468",29) = 29 (0x1d)

0.074128136 write(2,"\n",1)                      = 1 (0x1)
0.074128136 SIGNAL 11 (SIGSEGV)
0.074183730 linux_rt_sigreturn(0xffffd338,0xffffd34c,0xffffd34c,0x814aecc,0x82d9c60,0x6) = 675084432 (0x283cf890)
0.074291286 linux_rt_sigaction(0x2,0x0,0xffffd1ec,0x8,0x283deff4,0x6) = 0 (0x0)
0.074331793 linux_rt_sigaction(0x2,0xffffd310,0x0,0x8,0x283deff4,0x6) = 0 (0x0)
0.074371743 linux_rt_sigaction(0x8,0x0,0xffffd1ec,0x8,0x283deff4,0x6) = 0 (0x0)
0.074410854 linux_rt_sigaction(0x8,0xffffd310,0x0,0x8,0x283deff4,0x6) = 0 (0x0)
0.074451362 linux_rt_sigaction(0xb,0x0,0xffffd1ec,0x8,0x283deff4,0x6) = 0 (0x0)
0.074491032 linux_rt_sigaction(0xb,0xffffd310,0x0,0x8,0x283deff4,0x6) = 0 (0x0)
0.074537127 linux_rt_sigaction(0x4,0x0,0xffffd1ec,0x8,0x283deff4,0x6) = 0 (0x0)
0.074576238 linux_rt_sigaction(0x4,0xffffd310,0x0,0x8,0x283deff4,0x6) = 0 (0x0)
0.074615908 linux_rt_sigaction(0x7,0x0,0xffffd1ec,0x8,0x283deff4,0x6) = 0 (0x0)
0.074655019 linux_rt_sigaction(0x7,0xffffd310,0x0,0x8,0x283deff4,0x6) = 0 (0x0)
0.074693851 linux_rt_sigaction(0x3,0x0,0xffffd1ec,0x8,0x283deff4,0x6) = 0 (0x0)
0.074733521 linux_rt_sigaction(0x3,0xffffd310,0x0,0x8,0x283deff4,0x6) = 0 (0x0)
0.074733521 SIGNAL 11 (SIGSEGV)
0.074733521 process exit, rval = 0

I hope I read the trace correctly; as far as I see it, all libs are loaded correctly. But I'm not sure what to make of this error, it may be related to the missing setduplexfake.so.
 
My first interpretation seems to be false. When I set LD_PRELOAD_32=$TSHOME/setduplexfake.so, which doesn't force setduplexfake.so to be preloaded before running truss (the case in my previous test), I run into the the same error in truss/ktrace. So it looks like it has nothing to do with setduplexfake.so at all.
 
Back
Top