[MPlayer-users] weird crash playing mp3's

D Richard Felker III dalias at aerifal.cx
Wed Sep 11 05:51:01 CEST 2002


I just today experienced a strange crash playing a list of mp3's with
mplayer. When ending the eleventh file in the playlist (either by it
finishing, or by pressing enter), mplayer crashes because of an
invalid pointer stored in sh_audio. I'm not sure how or where it gets
corrupted. The issue seems very specific -- taking out lots of the
earlier files in the playlist, or removing the one that the crash
occurs on, makes the crash go away. In particular, playing file #11 by
itself works fine and does not cause mplayer to crash. But then,
removing files 5-10 causes the crash to occur earlier, on #3. So
perhaps some of the playtree code is overflowing buffers or messing up
the heap.

Here's the gdb stuff. If you need more details or want access to the
particular files I was using, lemme know.

Rich






Detected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 44100 Hz, 2 ch, sfmt: 0x10 (2 bps), ratio: 4000->176400 (32.0 kbit)
AO: [plugin] 44100Hz 2ch Signed 16-bit (Little-Endian)
[pl_volume] Software volume control in use.
Video: no video!!!
Start playing...
A:   0.7  3.1% 0%

Program received signal SIGSEGV, Segmentation fault.
uninit_audio (sh_audio=0x8359268) at dec_audio.c:141
141         if(sh_audio->a_in_buffer) free(sh_audio->a_in_buffer);
(gdb) bt
#0  uninit_audio (sh_audio=0x8359268) at dec_audio.c:141
#1  0x8051d09 in main (argc=16, argv=0xbffff764) at mplayer.c:2810
(gdb) print sh_audio
$1 = (sh_audio_t *) 0x8359268
(gdb) print *sh_audio
Cannot access memory at address 0x8359268.
(gdb) frame 1
#1  0x8051d09 in main (argc=16, argv=0xbffff764) at mplayer.c:2810
2810      if(sh_audio) uninit_audio(sh_audio);
(gdb) list
2805        if (vo_font) free_font_desc(vo_font);
2806        vo_font = NULL;
2807    #endif
2808
2809      current_module="uninit_acodec";
2810      if(sh_audio) uninit_audio(sh_audio);
2811      sh_audio=NULL;
2812
2813      current_module="uninit_vcodec";
2814      if(sh_video) uninit_video(sh_video);
(gdb)




More information about the MPlayer-users mailing list