[MPlayer-users] memory leaks

Jos van den Oever oever at fenk.wau.nl
Wed Sep 25 15:02:02 CEST 2002


Hello MPlayer developers,

First of all: thanks for a wonderful application!

I'm now trying to help you improve mplayer.

Overnight my X windows session crashed and I suspect it has something to do 
with my attempt to play an mms stream. I'm by no means certain of this, but 
the event prompted me to investigate mplayer playing an mss.

The command I uses was this:
for (( f=0; f<1000; f++ )); do mplayer http://www.omroep.nl/radio3/live64.asx; 
done

The loop was needed because the radio station is rather occupied and a request 
for a stream is often denied. I left this command running overnight and in 
the morning my X session was gone.

I haven't been able to reproduce this behaviour and have instead run mplayer 
with valgrind 1.0.3. I've attached the result of this.

I compiled mplayer on SuSE 8.0 with gcc 2.95.3 20010315 (SuSE).
The audio output is arts.

I hope this result can help you. Don't hesitate to ask for more information if 
you need it.
Best regards, Jos van den Oever
-------------- next part --------------
==14117== valgrind-1.0.3, a memory error detector for x86 GNU/Linux.
==14117== Copyright (C) 2000-2002, and GNU GPL'd, by Julian Seward.
==14117== Estimated CPU clock rate is 1721 MHz
==14117== For more details, rerun with: -v
==14117== 


MPlayer 0.90pre8-2.95.3 (C) 2000-2002 Arpad Gereoffy (see DOCS)

CPU: Intel Pentium P54C (Family: 5, Stepping: 11)
CPUflags:  MMX: 0 MMX2: 0 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

/home/oever/.mplayer/config(11): option: vo
/home/oever/.mplayer/config(11): parameter: xv
/home/oever/.mplayer/config(14): option: ao
/home/oever/.mplayer/config(14): parameter: arts
/home/oever/.mplayer/config(17): option: fs
/home/oever/.mplayer/config(17): parameter: no
/home/oever/.mplayer/config(41): option: double
/home/oever/.mplayer/config(41): parameter: yes
/home/oever/.mplayer/config(51): option: gui
/home/oever/.mplayer/config(51): parameter: no
/home/oever/.mplayer/config(59): option: skin
/home/oever/.mplayer/config(59): parameter: CornerMP-aqua
/home/oever/.mplayer/config(126): option: framedrop
/home/oever/.mplayer/config(126): parameter: yes
/home/oever/.mplayer/config(133): option: cache
/home/oever/.mplayer/config(133): parameter: 8192
/home/oever/.mplayer/config(152): option: osdlevel
/home/oever/.mplayer/config(152): parameter: 1
Reading /home/oever/.mplayer/codecs.conf: can't open '/home/oever/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: 38 audio & 106 video codecs
Linux RTC init error: Permission denied
Font /home/oever/.mplayer/font/font.desc loaded successfully! (206 chars)
Using usleep() timing
Input config file /home/oever/.mplayer/input.conf parsed : 8 binds
Setting up lirc support...
mplayer: could not connect to socket
mplayer: Permission denied
Failed opening lirc support!
You won't be able to use your remote control

Playing http://www.omroep.nl/radio3/live64.asx
Connecting to server www.omroep.nl:80 ...
Connecting to server www.omroep.nl:80 ...
Connected to server: www.omroep.nl
==14117== Invalid read of size 1
==14117==    at 0x807ABD9: asx_parse_attribs (asxparser.c:181)
==14117==    by 0x807B440: asx_get_element (asxparser.c:433)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117==    Address 0x4199FA7C is 0 bytes after a block of size 16 alloc'd
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x807B0C3: asx_get_element (asxparser.c:352)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117== 
==14117== Invalid read of size 1
==14117==    at 0x40048680: strchr (vg_clientfuncs.c:415)
==14117==    by 0x807AC01: asx_parse_attribs (asxparser.c:184)
==14117==    by 0x807B440: asx_get_element (asxparser.c:433)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    Address 0x4199FA7C is 0 bytes after a block of size 16 alloc'd
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x807B0C3: asx_get_element (asxparser.c:352)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117== 
==14117== Invalid read of size 1
==14117==    at 0x40048684: strchr (vg_clientfuncs.c:416)
==14117==    by 0x807AC01: asx_parse_attribs (asxparser.c:184)
==14117==    by 0x807B440: asx_get_element (asxparser.c:433)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    Address 0x4199FA7C is 0 bytes after a block of size 16 alloc'd
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x807B0C3: asx_get_element (asxparser.c:352)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117== 
==14117== Invalid write of size 4
==14117==    at 0x807AD81: asx_parse_attribs (asxparser.c:222)
==14117==    by 0x807B440: asx_get_element (asxparser.c:433)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117==    Address 0x4199FAEC is 8 bytes inside a block of size 9 alloc'd
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x40048303: realloc (vg_clientfuncs.c:262)
==14117==    by 0x807AD29: asx_parse_attribs (asxparser.c:215)
==14117==    by 0x807B440: asx_get_element (asxparser.c:433)
==14117== 
==14117== Invalid write of size 4
==14117==    at 0x807AD81: asx_parse_attribs (asxparser.c:222)
==14117==    by 0x807B440: asx_get_element (asxparser.c:433)
==14117==    by 0x807B7F9: asx_parse_entry (asxparser.c:550)
==14117==    by 0x807BD32: asx_parser_build_tree (asxparser.c:693)
==14117==    Address 0x419A32B0 is 8 bytes inside a block of size 9 alloc'd
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x40048303: realloc (vg_clientfuncs.c:262)
==14117==    by 0x807AD29: asx_parse_attribs (asxparser.c:215)
==14117==    by 0x807B440: asx_get_element (asxparser.c:433)
==14117== 
==14117== Conditional jump or move depends on uninitialised value(s)
==14117==    at 0x807A89E: asx_list_free (asxparser.c:71)
==14117==    by 0x807B88A: asx_parse_entry (asxparser.c:564)
==14117==    by 0x807BD32: asx_parser_build_tree (asxparser.c:693)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117== 
==14117== Conditional jump or move depends on uninitialised value(s)
==14117==    at 0x807A89E: asx_list_free (asxparser.c:71)
==14117==    by 0x807BE9A: asx_parser_build_tree (asxparser.c:720)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117==    by 0x807A6E8: play_tree_parser_get_play_tree (playtreeparser.c:522)


Playing mms://media2.omroep.nl/radio3live-64
Connecting to server media2.omroep.nl:80 ...
Connection timeout
asf_streaming_start failed
Unable to open URL: mms://media2.omroep.nl/radio3live-64


Exiting... (End of file)
==14117== 
==14117== ERROR SUMMARY: 43 errors from 7 contexts (suppressed: 34 from 7)
==14117== malloc/free: in use at exit: 907325 bytes in 821 blocks.
==14117== malloc/free: 1191 allocs, 370 frees, 3881674 bytes allocated.
==14117== For counts of detected errors, rerun with: -v
==14117== searching for pointers to 821 not-freed blocks.
==14117== checked 12656548 bytes.
==14117== 
==14117== definitely lost: 4150 bytes in 174 blocks.
==14117== possibly lost:   0 bytes in 0 blocks.
==14117== still reachable: 903175 bytes in 647 blocks.
==14117== 
==14117== 4 bytes in 1 blocks are still reachable in loss record 1 of 38
==14117==    at 0x40048380: realloc (vg_clientfuncs.c:270)
==14117==    by 0x807383A: m_config_push (cfgparser.c:221)
==14117==    by 0x8078BFE: play_tree_iter_push_params (playtree.c:418)
==14117==    by 0x8078F39: play_tree_iter_step (playtree.c:557)
==14117== 
==14117== 4 bytes in 1 blocks are still reachable in loss record 2 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8158CC7: http_response_parse (http.c:114)
==14117==    by 0x815A015: http_read_response (network.c:346)
==14117==    by 0x815A457: autodetectProtocol (network.c:499)
==14117== 
==14117== 5 bytes in 1 blocks are still reachable in loss record 3 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x81584E9: url_new (url.c:46)
==14117==    by 0x8159C24: check4proxies (network.c:226)
==14117==    by 0x815AE03: streaming_start (network.c:820)
==14117== 
==14117== 9 bytes in 1 blocks are still reachable in loss record 4 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8158BDC: http_response_parse (http.c:86)
==14117==    by 0x815A015: http_read_response (network.c:346)
==14117==    by 0x815A457: autodetectProtocol (network.c:499)
==14117== 
==14117== 12 bytes in 1 blocks are still reachable in loss record 5 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x4000B506: _dl_map_object_deps (in /lib/ld-2.2.5.so)
==14117==    by 0x40796401: dl_open_worker (in /lib/libc.so.6)
==14117==    by 0x4000C040: _dl_catch_error (in /lib/ld-2.2.5.so)
==14117== 
==14117== 14 bytes in 1 blocks are still reachable in loss record 6 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x81586BE: url_new (url.c:117)
==14117==    by 0x8159C24: check4proxies (network.c:226)
==14117==    by 0x815AE03: streaming_start (network.c:820)
==14117== 
==14117== 15 bytes in 1 blocks are still reachable in loss record 7 of 38
==14117==    at 0x40048380: realloc (vg_clientfuncs.c:270)
==14117==    by 0x8159151: http_get_field (http.c:235)
==14117==    by 0x815A6DD: autodetectProtocol (network.c:558)
==14117==    by 0x815AE18: streaming_start (network.c:821)
==14117== 
==14117== 27 bytes in 1 blocks are still reachable in loss record 8 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8081F72: read_font_desc (font_load.c:66)
==14117==    by 0x806C718: main (mplayer.c:691)
==14117==    by 0x406B39ED: __libc_start_main (in /lib/libc.so.6)
==14117== 
==14117== 28 bytes in 1 blocks are still reachable in loss record 9 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8158470: url_new (url.c:24)
==14117==    by 0x8159C24: check4proxies (network.c:226)
==14117==    by 0x815AE03: streaming_start (network.c:820)
==14117== 
==14117== 28 bytes in 1 blocks are still reachable in loss record 10 of 38
==14117==    at 0x40048380: realloc (vg_clientfuncs.c:270)
==14117==    by 0x8075D28: m_config_register_options (cfgparser.c:1185)
==14117==    by 0x81550E7: cdda_register_options (cdda.c:41)
==14117==    by 0x8154291: libmpdemux_register_options (opt-reg.c:20)
==14117== 
==14117== 36 bytes in 1 blocks are still reachable in loss record 11 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8169A4E: asf_http_streaming_start (asf_streaming.c:625)
==14117==    by 0x816888B: asf_streaming_start (asf_streaming.c:56)
==14117==    by 0x815AF79: streaming_start (network.c:858)
==14117== 
==14117== 40 bytes in 1 blocks are still reachable in loss record 12 of 38
==14117==    at 0x4004825E: calloc (vg_clientfuncs.c:239)
==14117==    by 0x80739F0: m_config_new (cfgparser.c:268)
==14117==    by 0x806C1E1: main (mplayer.c:567)
==14117==    by 0x406B39ED: __libc_start_main (in /lib/libc.so.6)
==14117== 
==14117== 44 bytes in 1 blocks are definitely lost in loss record 13 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x81597E2: streaming_ctrl_new (network.c:101)
==14117==    by 0x815ADF0: streaming_start (network.c:816)
==14117==    by 0x8140AC0: open_stream (open.c:414)
==14117== 
==14117== 48 bytes in 6 blocks are still reachable in loss record 14 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x815922D: http_set_field (http.c:270)
==14117==    by 0x8158DD5: http_response_parse (http.c:152)
==14117==    by 0x815A015: http_read_response (network.c:346)
==14117== 
==14117== 56 bytes in 2 blocks are still reachable in loss record 15 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x442AE50B: __res_nsend (in /lib/libresolv.so.2)
==14117==    by 0x442AD8F0: __res_nquery (in /lib/libresolv.so.2)
==14117==    by 0x442ADE6B: __res_nquerydomain (in /lib/libresolv.so.2)
==14117== 
==14117== 61 bytes in 9 blocks are definitely lost in loss record 16 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x807B00D: asx_get_element (asxparser.c:323)
==14117==    by 0x807BBD4: asx_parser_build_tree (asxparser.c:655)
==14117==    by 0x8079CA8: parse_asx (playtreeparser.c:193)
==14117== 
==14117== 64 bytes in 1 blocks are definitely lost in loss record 17 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x81589B2: http_new_header (http.c:19)
==14117==    by 0x8159FB8: http_read_response (network.c:326)
==14117==    by 0x815A457: autodetectProtocol (network.c:499)
==14117== 
==14117== 64 bytes in 2 blocks are still reachable in loss record 18 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x4000B5F4: _dl_map_object_deps (in /lib/ld-2.2.5.so)
==14117==    by 0x40796401: dl_open_worker (in /lib/libc.so.6)
==14117==    by 0x4000C040: _dl_catch_error (in /lib/ld-2.2.5.so)
==14117== 
==14117== 64 bytes in 3 blocks are still reachable in loss record 19 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x40009942: _dl_new_object (in /lib/ld-2.2.5.so)
==14117==    by 0x40005B1C: _dl_map_object_from_fd (in /lib/ld-2.2.5.so)
==14117==    by 0x4000747B: _dl_map_object (in /lib/ld-2.2.5.so)
==14117== 
==14117== 64 bytes in 3 blocks are still reachable in loss record 20 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x40007161: _dl_map_object (in /lib/ld-2.2.5.so)
==14117==    by 0x40796341: dl_open_worker (in /lib/libc.so.6)
==14117==    by 0x4000C040: _dl_catch_error (in /lib/ld-2.2.5.so)
==14117== 
==14117== 80 bytes in 4 blocks are still reachable in loss record 21 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8081D13: load_raw (font_load.c:18)
==14117==    by 0x80823BE: read_font_desc (font_load.c:153)
==14117==    by 0x806C718: main (mplayer.c:691)
==14117== 
==14117== 96 bytes in 3 blocks are still reachable in loss record 22 of 38
==14117==    at 0x4004825E: calloc (vg_clientfuncs.c:239)
==14117==    by 0x8077FE3: play_tree_new (playtree.c:19)
==14117==    by 0x806C1D3: main (mplayer.c:565)
==14117==    by 0x406B39ED: __libc_start_main (in /lib/libc.so.6)
==14117== 
==14117== 101 bytes in 3 blocks are definitely lost in loss record 23 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x806B7A0: get_path (get_path.c:17)
==14117==    by 0x806C460: main (mplayer.c:633)
==14117==    by 0x406B39ED: __libc_start_main (in /lib/libc.so.6)
==14117== 
==14117== 128 bytes in 1 blocks are still reachable in loss record 24 of 38
==14117==    at 0x40048380: realloc (vg_clientfuncs.c:270)
==14117==    by 0x807346E: m_config_save_option (cfgparser.c:86)
==14117==    by 0x8074373: config_read_option (cfgparser.c:489)
==14117==    by 0x80752E6: m_config_set_option (cfgparser.c:838)
==14117== 
==14117== 183 bytes in 6 blocks are still reachable in loss record 25 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x815928A: http_set_field (http.c:276)
==14117==    by 0x8158DD5: http_response_parse (http.c:152)
==14117==    by 0x815A015: http_read_response (network.c:346)
==14117== 
==14117== 416 bytes in 3 blocks are still reachable in loss record 26 of 38
==14117==    at 0x4004825E: calloc (vg_clientfuncs.c:239)
==14117==    by 0x4000D4EB: _dl_check_map_versions (in /lib/ld-2.2.5.so)
==14117==    by 0x40796441: dl_open_worker (in /lib/libc.so.6)
==14117==    by 0x4000C040: _dl_catch_error (in /lib/ld-2.2.5.so)
==14117== 
==14117== 499 bytes in 15 blocks are definitely lost in loss record 27 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x815928A: http_set_field (http.c:276)
==14117==    by 0x8159E87: http_send_request (network.c:289)
==14117==    by 0x815A43D: autodetectProtocol (network.c:494)
==14117== 
==14117== 965 bytes in 144 blocks are definitely lost in loss record 28 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x4070F8CA: __strdup (in /lib/libc.so.6)
==14117==    by 0x807205B: validate_codec (codec-cfg.c:287)
==14117==    by 0x807279F: parse_codec_cfg (codec-cfg.c:518)
==14117== 
==14117== 1224 bytes in 1 blocks are still reachable in loss record 29 of 38
==14117==    at 0x40048380: realloc (vg_clientfuncs.c:270)
==14117==    by 0x816C74A: mp_input_bind_keys (input.c:1057)
==14117==    by 0x816CEAD: mp_input_parse_config (input.c:1230)
==14117==    by 0x816CF49: mp_input_init (input.c:1255)
==14117== 
==14117== 1645 bytes in 3 blocks are still reachable in loss record 30 of 38
==14117==    at 0x4004825E: calloc (vg_clientfuncs.c:239)
==14117==    by 0x400097A9: _dl_new_object (in /lib/ld-2.2.5.so)
==14117==    by 0x40005B1C: _dl_map_object_from_fd (in /lib/ld-2.2.5.so)
==14117==    by 0x4000747B: _dl_map_object (in /lib/ld-2.2.5.so)
==14117== 
==14117== 1672 bytes in 36 blocks are still reachable in loss record 31 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x40048303: realloc (vg_clientfuncs.c:262)
==14117==    by 0x8072259: add_comment (codec-cfg.c:343)
==14117==    by 0x80729F3: parse_codec_cfg (codec-cfg.c:571)
==14117== 
==14117== 2416 bytes in 1 blocks are definitely lost in loss record 32 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8141D89: new_stream (stream.c:245)
==14117==    by 0x8140AA7: open_stream (open.c:413)
==14117==    by 0x806D21A: main (mplayer.c:959)
==14117== 
==14117== 3072 bytes in 4 blocks are still reachable in loss record 33 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8081DFA: load_raw (font_load.c:32)
==14117==    by 0x8082550: read_font_desc (font_load.c:174)
==14117==    by 0x806C718: main (mplayer.c:691)
==14117== 
==14117== 5953 bytes in 547 blocks are still reachable in loss record 34 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x4070F8CA: __strdup (in /lib/libc.so.6)
==14117==    by 0x8072AD0: parse_codec_cfg (codec-cfg.c:586)
==14117==    by 0x806C47A: main (mplayer.c:634)
==14117== 
==14117== 26192 bytes in 4 blocks are still reachable in loss record 35 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8094278: new_osd_obj (sub.c:460)
==14117==    by 0x80951BB: vo_init_osd (sub.c:566)
==14117==    by 0x806C758: main (mplayer.c:702)
==14117== 
==14117== 67160 bytes in 2 blocks are still reachable in loss record 36 of 38
==14117==    at 0x40048380: realloc (vg_clientfuncs.c:270)
==14117==    by 0x807280A: parse_codec_cfg (codec-cfg.c:535)
==14117==    by 0x806C47A: main (mplayer.c:634)
==14117==    by 0x406B39ED: __libc_start_main (in /lib/libc.so.6)
==14117== 
==14117== 270400 bytes in 4 blocks are still reachable in loss record 37 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8081E3F: load_raw (font_load.c:39)
==14117==    by 0x80823BE: read_font_desc (font_load.c:153)
==14117==    by 0x806C718: main (mplayer.c:691)
==14117== 
==14117== 524436 bytes in 1 blocks are still reachable in loss record 38 of 38
==14117==    at 0x40047D1B: malloc (vg_clientfuncs.c:100)
==14117==    by 0x8081EA5: read_font_desc (font_load.c:60)
==14117==    by 0x806C718: main (mplayer.c:691)
==14117==    by 0x406B39ED: __libc_start_main (in /lib/libc.so.6)
==14117== 
==14117== LEAK SUMMARY:
==14117==    definitely lost: 4150 bytes in 174 blocks.
==14117==    possibly lost:   0 bytes in 0 blocks.
==14117==    still reachable: 903175 bytes in 647 blocks.
==14117== 


More information about the MPlayer-users mailing list