Reply To: Crash on openSUSE 10.2

#10360
w1ll14m
Participant

Ok,

I used mt-daapd-1549:
Edited xml-rpc.c as said above


./configure --enable-sqlite3 -enable-=avahi -enable-oggvorbis --enable-flac --enable-musepack --enable-ffmpeg --with-ffmpeg==/usr/include/ffmpeg/ --enable-upnp --with-id3tag

Source compiles just fine.

Debugging again:


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1098918208 (LWP 23210)]
0x00002b75a9932bd0 in strlen () from /lib/libc.so.6

Backtrace:


(gdb) bt
#0 0x00002b75a9932bd0 in strlen () from /lib/libc.so.6
#1 0x00002b75a9904b60 in vfprintf () from /lib/libc.so.6
#2 0x00002b75a9925a1a in vsnprintf () from /lib/libc.so.6
#3 0x00000000004176bc in xml_output (pxml=0x579e40, section=0x446bdc "name", fmt=0x417fe601 "æ177A") at xml-rpc.c:307
#4 0x0000000000417997 in xml_get_stats (pwsc=) at xml-rpc.c:549
#5 0x000000000040a7b7 in config_handler (pwsc=0x578760) at configfile.c:438
#6 0x0000000000408f2f in ws_dispatcher (arg=) at webserver.c:986
#7 0x00002b75a86c4135 in start_thread () from /lib/libpthread.so.0
#8 0x00002b75a997f2ce in clone () from /lib/libc.so.6
#9 0x0000000000000000 in ?? ()
(gdb) select(12, 5.000000)

Also tested 1571:
Same changes in xml-rpc.c
same ./configure used, and compiles fine.

unpatched:


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1098918208 (LWP 30635)]
0x00002ae19cb29031 in ?? () from /lib/libc.so.6
(gdb) select(12, 0.100585)

Backtrace:


bt
#0 0x00002ae19cb29031 in ?? () from /lib/libc.so.6
#1 0x00002ae19cb0e4b1 in vfprintf () from /lib/libc.so.6
#2 0x00002ae19cb32a1a in vsnprintf () from /lib/libc.so.6
#3 0x00000000004176dc in xml_output (pxml=0x579d10, section=0x446c1c "name", fmt=0xffffffffffffffc0
) at xml-rpc.c:307
#4 0x00000000004179b3 in xml_get_stats (pwsc=) at xml-rpc.c:549
#5 0x000000000040a7d7 in config_handler (pwsc=0x578840) at configfile.c:443
#6 0x0000000000408f2f in ws_dispatcher (arg=) at webserver.c:986
#7 0x00002ae19b8d1135 in start_thread () from /lib/libpthread.so.0
#8 0x00002ae19cb8c2ce in clone () from /lib/libc.so.6
#9 0x0000000000000000 in ?? ()
(gdb) select(12, 5.000000)

Patched:


Updating Content-Type from text/html to text/xml; charset=utf-8
Emitting reponse header Expires: -1
Emitting reponse header Cache-Control: no-cache
Emitting reponse header Content-Language: en_us
Emitting reponse header Content-Type: text/xml; charset=utf-8
Emitting reponse header Server: mt-daapd/svn-1571
Emitting reponse header Connection: close
Emitting reponse header Date: Tue, 1 May 2007 11:05:12 GMT
Status inquiry
Processing rendezvous message
select(12, 2.257812)
Returning status 0

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1098918208 (LWP 29044)]
0x00002b8613296bd0 in strlen () from /lib/libc.so.6
(gdb) select(12, 0.091796)

Backtrace:


bt
#0 0x00002b8613296bd0 in strlen () from /lib/libc.so.6
#1 0x00002b8613268b60 in vfprintf () from /lib/libc.so.6
#2 0x00002b8613289a1a in vsnprintf () from /lib/libc.so.6
#3 0x00000000004176dc in xml_output (pxml=0x579cc0, section=0x446c1c "name", fmt=0x417fe601 "æ177A") at xml-rpc.c:307
#4 0x00000000004179b7 in xml_get_stats (pwsc=) at xml-rpc.c:549
#5 0x000000000040a7d7 in config_handler (pwsc=0x578870) at configfile.c:443
#6 0x0000000000408f2f in ws_dispatcher (arg=) at webserver.c:986
#7 0x00002b8612028135 in start_thread () from /lib/libpthread.so.0
#8 0x00002b86132e32ce in clone () from /lib/libc.so.6
#9 0x0000000000000000 in ?? ()

Seems to make no difference (in stability).
It seems you can view playlist page (where is no playlist except dynamic playlist from mt-daapd) and if you go further, it crashes again.

I can see some changes in the backtrace from the unpatched and patched version, but i can’t tell what it is except that is indeed somewhere in xml-rpc.