i'm using vorbisgain v0.32 (a third party tool)
a seg fault is occurring within libvorbis, so maybe it is a bug in libvorbis
itself..
the seg fault can occur at any point in the analysing stage, and occurs often
(for me at least) with low quality encoded files.
audio-q1.ogg is a large ogg vorbis file (about 35Mb), quality 1.
> gdb vorbisgain
(gdb) run audio-q1.ogg
Starting program: /usr/local/bin/vorbisgain audio-q1.ogg
Analyzing files...
Gain | Peak | Scale | New Peak | Track
----------+--------+-------+----------+------
(no debugging symbols found)...
Program received signal SIGSEGV, Segmentation fault.
0x280a6994 in decode_packed_entry_number (book=0x809e3c8, b=0xbfbff5a8)
at codebook.c:345
345 if(book->dec_codelengths[lo]<=read){
(gdb) print book->dec_codelengths
$1 = 0x800 <Error reading address 0x800: Bad address>
(gdb) print lo
$2 = 0
(gdb) print hi
$3 = 0
(gdb) bt
#0 0x280a6994 in decode_packed_entry_number (book=0x809e3c8, b=0xbfbff5a8)
at codebook.c:345
#1 0x280a67d2 in vorbis_book_decodevv_add (book=0x809e3c8, a=0xbfbff1a8,
offset=288, ch=2, b=0xbfbff5a8, n=32) at codebook.c:460
#2 0x280a4499 in res2_inverse (vb=0xbfbff5a4, vl=0x8084240, in=0xbfbff1a8,
nonzero=0x1, ch=2) at res0.c:859
#3 0x280a58e2 in mapping0_inverse (vb=0xbfbff5a4, l=0x8098000)
at mapping0.c:701
#4 0x2809b2c9 in vorbis_synthesis (vb=0xbfbff5a4, op=0x2) at synthesis.c:76
#5 0x280b3484 in _fetch_and_process_packet (vf=0xbfbff360, op_in=0x0, readp=1)
at vorbisfile.c:481
#6 0x280b5a68 in ov_read_float (vf=0xbfbff360, pcm_channels=0xbfbff354,
length=1024, bitstream=0xbfbff358) at vorbisfile.c:1612
#7 0x0804a7f4 in free ()
#8 0x08049a37 in free ()
#9 0x0804a16d in free ()
#10 0x080493d5 in free ()