[vlc] Segmentation fault using Tremor

Matthias Kaehlcke matthias at kaehlcke.net
Thu May 29 10:51:35 CEST 2008


Hi,

I build a VLC binary with vorbis support using Tremor. When i try to
play a vorbis file vlc terminates with a segmentation fault in the
tremor library. Playing the same file with the cmus player
(http://cmus.sourceforge.net/) with a Tremor patch
(http://lists.debian.org/debian-arm/2006/11/msg00084.html) succeeds,
so i suppose the problem is VLC rather than Tremor.

The segmentation fault occurs in the function oggpack_readinit() in
the marked line:

 void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){
     memset(b,0,sizeof(*b));
 
    b->tail=b->head=r;
    b->count=0;
->  b->headptr=b->head->buffer->data+b->head->begin;
    b->headend=b->head->length;
		_span(b);
 }


according to gdb b->head->buffer contains an invalid address:

(gdb) p *b->head
$6 = {buffer = 0x726f7601, begin = 7563618, length = 33554432, next =
0xac44}
(gdb) p *b->head->buffer
Cannot access memory at address 0x726f7601

The VLC version is 0.8.6f with the current version of Tremor from the
subversion repository. The development and target box is Ubuntu Gutsy
Gibbon with gcc v4.1.3.

I used the following configure command to build VLC:

./configure -disable-sout --disable-httpd --disable-vlm
--disable-growl --disable-notify --disable-dvdnav
--disable-smb--disable-dvbpsi --disable-gnomevfs --disable-libcdio
--disable-libcddb --disable-cdda --disable-vcd --disable-screen
--disable-mkv --disable-mod --disable-mpc --disable-ffmpeg
--disable-libtar --disable-a52 --disable-dts --disable-libmpeg2
--disable-speex --disable-png --disable-x264 --disable-cmml
--disable-x11 --disable-xvideo --disable-glx --disable-xinerama
--disable-opengl --disable-sdl --disable-sdl-image --disable-freetype
--disable-fribidi --disable-libxml2 --disable-fb --disable-wxwidgets
--disable-visual --disable-daap --disable-bonjour --disable-gnutls
--disable-skins2 --disable-vorbis --enable-tremor --enable-ogg
--enable-mad --with-mad=/usr/local/libmad --prefix=/usr/local/vlc
--enable-debug


Tremor was build using the following sequence:

# VLC relies on symbols that aren't (any longer?) exported by Tremor
# add the following lines to Version_script.in in the Tremor source
# directory:

  vorbis_synthesis_read;
  vorbis_packet_blocksize;
  vorbis_block_init;
  vorbis_synthesis;
  vorbis_dsp_clear;
  vorbis_block_clear;
  vorbis_synthesis_init;
  vorbis_synthesis_blockin;
  vorbis_synthesis_headerin;
  vorbis_synthesis_pcmout;


./autogen.sh

./configure --prefix=/usr/local/tremor

make

make install


Any idea what could be the problem?

-- 
Matthias Kaehlcke
Embedded Linux Engineer
Barcelona

     The assumption that what currently exists must necessarily
      exist is the acid that corrodes all visionary thinking
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-



More information about the vlc mailing list