From: SourceForge.net <no...@so...> - 2005-06-18 02:46:01
|
Bugs item #1223022, was opened at 2005-06-17 19:46 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-06-21 18:13:22
|
Bugs item #1223022, was opened at 2005-06-18 02:46 Message generated for change (Comment added) made by noltec You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 12:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-06-23 17:02:41
|
Bugs item #1223022, was opened at 2005-06-17 19:46 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 10:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 05:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-06-24 20:24:44
|
Bugs item #1223022, was opened at 2005-06-17 19:46 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 13:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 10:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 05:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-06-26 21:45:25
|
Bugs item #1223022, was opened at 2005-06-17 19:46 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 14:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 13:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 10:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 05:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-06-26 23:56:37
|
Bugs item #1223022, was opened at 2005-06-17 19:46 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 16:56 Message: Logged In: NO I've found the problem. In src/xitk/menus.c there appears to be an attempt to free non-malloc'd memory. If you comment out the following lines: while(shc > 0) free(sh[--shc]); ...in the function video_window_menu then the menu appears correctly and XINE doesn't crash. Although the menu does appear, the shortcuts are not shown correctly which leads me to think the menu_get_shortcut function isn't working correctly, or - at least - memory isn't being allocated correctly. This is borne out by the fact that I noticed no additional memory usage from commenting out those lines, when in reality they should cause a memory leak. This doesn't help anyone with the RPMs, but just thought you might want to know. I have submitted this info to the repo controller at FreshRPMs. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 14:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 13:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 10:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 05:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-06-27 08:33:50
|
Bugs item #1223022, was opened at 2005-06-18 02:46 Message generated for change (Comment added) made by durzel You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-06-27 08:33 Message: Logged In: YES user_id=28008 Just to add some more to this (I'm logged in now). menu_get_shortcut appears to try and allocate memory using strdup, for sh[shc++] to point to in the video_window_menu. From what I can gather from some initial investigation (my C is a little rusty), this memory is not correctly allocated - hence the crash when the free() loop begins later in the function. menu_get_shortcut DOES get the correct keymap key for each of the keys (e.g. "f" = ToggleFullscreen, etc), but it does not show correctly on the menu when it appears. On my system all the shortcuts appear as "q" - which is coincidentally the last menu option/shortcut - even though pressing the relevant keys still does whatever they're bound to, etc. My guess is that the while/free loop is correct, but that memory is not being allocated properly by the strdup. Could this be a change in GCC4 behaviour causing this? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 23:56 Message: Logged In: NO I've found the problem. In src/xitk/menus.c there appears to be an attempt to free non-malloc'd memory. If you comment out the following lines: while(shc > 0) free(sh[--shc]); ...in the function video_window_menu then the menu appears correctly and XINE doesn't crash. Although the menu does appear, the shortcuts are not shown correctly which leads me to think the menu_get_shortcut function isn't working correctly, or - at least - memory isn't being allocated correctly. This is borne out by the fact that I noticed no additional memory usage from commenting out those lines, when in reality they should cause a memory leak. This doesn't help anyone with the RPMs, but just thought you might want to know. I have submitted this info to the repo controller at FreshRPMs. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 21:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 20:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 17:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 12:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-07-02 10:17:17
|
Bugs item #1223022, was opened at 2005-06-18 02:46 Message generated for change (Comment added) made by noltec You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-07-02 10:17 Message: Logged In: YES user_id=1171136 I could solve the problem for me by compiling xine-0.99.3-4.2.fc4.src.rpm (freshrpms, this one is already gcc4 patched) using either the gcc4 or gcc32 compiler, while leaving xine-lib as it was. If this is a memory related BUG then it is very likely undefined behavior. Could anybody confirm this? ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-06-27 08:33 Message: Logged In: YES user_id=28008 Just to add some more to this (I'm logged in now). menu_get_shortcut appears to try and allocate memory using strdup, for sh[shc++] to point to in the video_window_menu. From what I can gather from some initial investigation (my C is a little rusty), this memory is not correctly allocated - hence the crash when the free() loop begins later in the function. menu_get_shortcut DOES get the correct keymap key for each of the keys (e.g. "f" = ToggleFullscreen, etc), but it does not show correctly on the menu when it appears. On my system all the shortcuts appear as "q" - which is coincidentally the last menu option/shortcut - even though pressing the relevant keys still does whatever they're bound to, etc. My guess is that the while/free loop is correct, but that memory is not being allocated properly by the strdup. Could this be a change in GCC4 behaviour causing this? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 23:56 Message: Logged In: NO I've found the problem. In src/xitk/menus.c there appears to be an attempt to free non-malloc'd memory. If you comment out the following lines: while(shc > 0) free(sh[--shc]); ...in the function video_window_menu then the menu appears correctly and XINE doesn't crash. Although the menu does appear, the shortcuts are not shown correctly which leads me to think the menu_get_shortcut function isn't working correctly, or - at least - memory isn't being allocated correctly. This is borne out by the fact that I noticed no additional memory usage from commenting out those lines, when in reality they should cause a memory leak. This doesn't help anyone with the RPMs, but just thought you might want to know. I have submitted this info to the repo controller at FreshRPMs. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 21:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 20:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 17:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 12:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-07-04 20:02:22
|
Bugs item #1223022, was opened at 2005-06-17 19:46 Message generated for change (Comment added) made by foogod You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Alex Stewart (foogod) Date: 2005-07-04 13:02 Message: Logged In: YES user_id=61071 I've found the problem. In menus.c, the code uses the following construct several times when constructing the menu structure array: (sh[shc++] = menu_get_shortcut(...)), The problem is that this construct involves an increment operator ("shc++") and is used multiple times in the statement that constructs the array. The behavior of multiple increment operations performed on the same variable in the same statement is explicitly undefined by both ANSI C and GNU C, so relying on any of this to work right was a bad idea to begin with, and as of gcc 4 (where the behavior apparently changed), we now see why. ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-07-02 03:17 Message: Logged In: YES user_id=1171136 I could solve the problem for me by compiling xine-0.99.3-4.2.fc4.src.rpm (freshrpms, this one is already gcc4 patched) using either the gcc4 or gcc32 compiler, while leaving xine-lib as it was. If this is a memory related BUG then it is very likely undefined behavior. Could anybody confirm this? ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-06-27 01:33 Message: Logged In: YES user_id=28008 Just to add some more to this (I'm logged in now). menu_get_shortcut appears to try and allocate memory using strdup, for sh[shc++] to point to in the video_window_menu. From what I can gather from some initial investigation (my C is a little rusty), this memory is not correctly allocated - hence the crash when the free() loop begins later in the function. menu_get_shortcut DOES get the correct keymap key for each of the keys (e.g. "f" = ToggleFullscreen, etc), but it does not show correctly on the menu when it appears. On my system all the shortcuts appear as "q" - which is coincidentally the last menu option/shortcut - even though pressing the relevant keys still does whatever they're bound to, etc. My guess is that the while/free loop is correct, but that memory is not being allocated properly by the strdup. Could this be a change in GCC4 behaviour causing this? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 16:56 Message: Logged In: NO I've found the problem. In src/xitk/menus.c there appears to be an attempt to free non-malloc'd memory. If you comment out the following lines: while(shc > 0) free(sh[--shc]); ...in the function video_window_menu then the menu appears correctly and XINE doesn't crash. Although the menu does appear, the shortcuts are not shown correctly which leads me to think the menu_get_shortcut function isn't working correctly, or - at least - memory isn't being allocated correctly. This is borne out by the fact that I noticed no additional memory usage from commenting out those lines, when in reality they should cause a memory leak. This doesn't help anyone with the RPMs, but just thought you might want to know. I have submitted this info to the repo controller at FreshRPMs. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 14:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 13:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 10:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 05:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-07-04 20:07:06
|
Bugs item #1223022, was opened at 2005-06-17 19:46 Message generated for change (Comment added) made by foogod You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Alex Stewart (foogod) Date: 2005-07-04 13:07 Message: Logged In: YES user_id=61071 The following patch should fix this issue (I wanted to attach this as a file, but can't find any way to do that..). It also incidentally fixes a small memory leak in playlist_menu in the process: --- xine-ui-0.99.3/src/xitk/menus.c.orig 2004-10-19 14:18:48.000000000 -0700 +++ xine-ui-0.99.3/src/xitk/menus.c 2005-07-04 12:38:53.000000000 -0700 @@ -425,8 +425,7 @@ int x, y; xitk_menu_widget_t menu; char buffer[2048]; - char *sh[255]; - int shc = 0; + int i; xitk_widget_t *w; #ifdef HAVE_XINERAMA int fullscr_mode = (FULLSCR_MODE | FULLSCR_XI_MODE); @@ -439,15 +438,15 @@ "<title>", NULL, NULL }, { _("Show controls"), - (sh[shc++] = menu_get_shortcut("ToggleVisibility")), + menu_get_shortcut("ToggleVisibility"), panel_is_visible() ? "<checked>" : "<check>", menu_panel_visibility, NULL }, { _("Show video window"), - (sh[shc++] = menu_get_shortcut("ToggleWindowVisibility")), + menu_get_shortcut("ToggleWindowVisibility"), video_window_is_visible() ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_TOGGLE }, { _("Fullscreen"), - (sh[shc++] = menu_get_shortcut("ToggleFullscreen")), + menu_get_shortcut("ToggleFullscreen"), (video_window_get_fullscreen_mode() & fullscr_mode) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_FULLSCR }, { "SEP", @@ -459,7 +458,7 @@ "<branch>", NULL, NULL }, { _("Open/File..."), - (sh[shc++] = menu_get_shortcut("FileSelector")), + menu_get_shortcut("FileSelector"), NULL, menu_file_selector, NULL }, { _("Open/Playlist..."), @@ -467,7 +466,7 @@ NULL, menu_playlist_ctrl, (void *) PLAYL_LOAD }, { _("Open/Location..."), - (sh[shc++] = menu_get_shortcut("MrlBrowser")), + menu_get_shortcut("MrlBrowser"), NULL, menu_mrl_browser, NULL }, { _("Playback"), @@ -475,15 +474,15 @@ "<Branch>", NULL, NULL }, { _("Playback/Play"), - (sh[shc++] = menu_get_shortcut("Play")), + menu_get_shortcut("Play"), NULL, menu_playback_ctrl, (void *) PLAYB_PLAY }, { _("Playback/Stop"), - (sh[shc++] = menu_get_shortcut("Stop")), + menu_get_shortcut("Stop"), NULL, menu_playback_ctrl, (void *) PLAYB_STOP }, { _("Playback/Pause"), - (sh[shc++] = menu_get_shortcut("Pause")), + menu_get_shortcut("Pause"), NULL, menu_playback_ctrl, (void *) PLAYB_PAUSE }, { _("Playback/SEP"), @@ -491,11 +490,11 @@ "<separator>", NULL, NULL }, { _("Playback/Next MRL"), - (sh[shc++] = menu_get_shortcut("NextMrl")), + menu_get_shortcut("NextMrl"), NULL, menu_playback_ctrl, (void *) PLAYB_NEXT }, { _("Playback/Previous MRL"), - (sh[shc++] = menu_get_shortcut("PriorMrl")), + menu_get_shortcut("PriorMrl"), NULL, menu_playback_ctrl, (void *) PLAYB_PREV }, { _("Playback/SEP"), @@ -503,11 +502,11 @@ "<separator>", NULL, NULL }, { _("Playback/Increase Speed"), - (sh[shc++] = menu_get_shortcut("SpeedFaster")), + menu_get_shortcut("SpeedFaster"), NULL, menu_playback_ctrl, (void *) PLAYB_SPEEDM }, { _("Playback/Decrease Speed"), - (sh[shc++] = menu_get_shortcut("SpeedSlower")), + menu_get_shortcut("SpeedSlower"), NULL, menu_playback_ctrl, (void *) PLAYB_SPEEDL }, { _("Playlist"), @@ -523,7 +522,7 @@ NULL, menu_playlist_ctrl, (void *) PLAYL_LOAD }, { _("Playlist/Editor..."), - (sh[shc++] = menu_get_shortcut("PlaylistEditor")), + menu_get_shortcut("PlaylistEditor"), NULL, menu_playlist_ctrl, (void *) PLAYL_EDIT }, { _("Playlist/SEP"), @@ -555,7 +554,7 @@ (gGui->playlist.loop == PLAYLIST_LOOP_SHUF_PLUS) ? "<checked>" : "<check>", menu_playlist_ctrl, (void *) PLAYL_SHUF_PLUS }, { _("Playlist/Continue Playback"), - (sh[shc++] = menu_get_shortcut("PlaylistStop")), + menu_get_shortcut("PlaylistStop"), (gGui->playlist.control & PLAYLIST_CONTROL_STOP) ? "<check>" : "<checked>", menu_playlist_ctrl, (void *) PLAYL_CTRL_STOP }, { "SEP", @@ -567,7 +566,7 @@ "<branch>", NULL, NULL }, { _("Menus/Navigation..."), - (sh[shc++] = menu_get_shortcut("EventSenderShow")), + menu_get_shortcut("EventSenderShow"), NULL, menu_event_sender, NULL }, { _("Menus/SEP"), @@ -583,11 +582,11 @@ "<branch>", NULL, NULL }, { _("Stream/Information..."), - (sh[shc++] = menu_get_shortcut("StreamInfosShow")), + menu_get_shortcut("StreamInfosShow"), NULL, menu_stream, (void *) STREAM_WINI }, { _("Stream/Information (OSD)"), - (sh[shc++] = menu_get_shortcut("OSDStreamInfos")), + menu_get_shortcut("OSDStreamInfos"), NULL, menu_stream, (void *) STREAM_OSDI }, { _("Video"), @@ -595,7 +594,7 @@ "<branch>", NULL, NULL }, { _("Video/Deinterlace"), - (sh[shc++] = menu_get_shortcut("ToggleInterleave")), + menu_get_shortcut("ToggleInterleave"), (gGui->deinterlace_enable) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_INTERLEAVE }, { _("Video/SEP"), @@ -627,15 +626,15 @@ (aspect == XINE_VO_ASPECT_DVB) ? "<checked>" : "<check>", menu_aspect, (void *) XINE_VO_ASPECT_DVB }, { _("Video/200%"), - (sh[shc++] = menu_get_shortcut("Window200")), + menu_get_shortcut("Window200"), (video_window_get_mag() == 2.0) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_2X }, { _("Video/100%"), - (sh[shc++] = menu_get_shortcut("Window100")), + menu_get_shortcut("Window100"), (video_window_get_mag() == 1.0) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_1X }, { _("Video/50%"), - (sh[shc++] = menu_get_shortcut("Window50")), + menu_get_shortcut("Window50"), (video_window_get_mag() == .5) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO__5X }, { _("Video/SEP"), @@ -647,11 +646,11 @@ "<branch>", NULL, NULL }, { _("Video/Postprocess/Chain Reaction..."), - (sh[shc++] = menu_get_shortcut("VPProcessShow")), + menu_get_shortcut("VPProcessShow"), NULL, menu_video_ctrl, (void *) VIDEO_PPROCESS }, { _("Video/Postprocess/Enable Postprocessing"), - (sh[shc++] = menu_get_shortcut("VPProcessEnable")), + menu_get_shortcut("VPProcessEnable"), gGui->post_enable ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_PPROCESS_ENABLE }, { _("Audio"), @@ -663,7 +662,7 @@ "<branch>", NULL, NULL }, { _("Audio/Volume/Mute"), - (sh[shc++] = menu_get_shortcut("Mute")), + menu_get_shortcut("Mute"), gGui->mixer.mute ? "<checked>" : "<check>", menu_audio_ctrl, (void *) AUDIO_MUTE }, { _("Audio/Volume/Increase 10%"), @@ -699,25 +698,25 @@ "<branch>", NULL, NULL }, { _("Settings/Setup..."), - (sh[shc++] = menu_get_shortcut("SetupShow")), + menu_get_shortcut("SetupShow"), NULL, menu_settings, (void *) SETS_SETUP }, #ifdef HAVE_CURL { _("Settings/Skin Downloader..."), - (sh[shc++] = menu_get_shortcut("SkinDownload")), + menu_get_shortcut("SkinDownload"), NULL, menu_settings, (void *) SETS_SKINDL }, #endif { _("Settings/Keymap Editor..."), - (sh[shc++] = menu_get_shortcut("KeyBindingEditor")), + menu_get_shortcut("KeyBindingEditor"), NULL, menu_settings, (void *) SETS_KEYMAP }, { _("Settings/Video..."), - (sh[shc++] = menu_get_shortcut("ControlShow")), + menu_get_shortcut("ControlShow"), NULL, menu_settings, (void *) SETS_VIDEO }, { _("Settings/TV Analog..."), - (sh[shc++] = menu_get_shortcut("TVAnalogShow")), + menu_get_shortcut("TVAnalogShow"), NULL, menu_settings, (void *) SETS_TVANALOG }, { "SEP", @@ -725,11 +724,11 @@ "<separator>", NULL, NULL }, { _("Help..."), - (sh[shc++] = menu_get_shortcut("HelpShow")), + menu_get_shortcut("HelpShow"), NULL, menu_help, NULL }, { _("Logs..."), - (sh[shc++] = menu_get_shortcut("ViewlogShow")), + menu_get_shortcut("ViewlogShow"), NULL, menu_settings, (void *) SETS_LOGS }, { "SEP", @@ -737,7 +736,7 @@ "<separator>", NULL, NULL }, { _("Quit"), - (sh[shc++] = menu_get_shortcut("Quit")), + menu_get_shortcut("Quit"), NULL, menu_quit, NULL }, { NULL, @@ -765,8 +764,9 @@ w = xitk_noskin_menu_create(wl, &menu, x + 1, y + 1); - while(shc > 0) - free(sh[--shc]); + for (i = 0; i < sizeof(menu_entries)/sizeof(*menu_entries); i++) + if (menu_entries[i].shortcut) + free(menu_entries[i].shortcut); /* Subtitle loader */ if(gGui->playlist.num) { @@ -1155,12 +1155,11 @@ xitk_menu_widget_t menu; xitk_widget_t *w = NULL; char buffer[2048]; - char *sh[50]; - int shc = 0; + int i; xitk_menu_entry_t menu_entries_nosel[] = { { NULL , NULL, "<title>", NULL, NULL }, { "SEP", NULL, "<separator>", NULL, NULL }, - { _("Scan"), (sh[shc] = menu_get_shortcut("ScanPlaylistInfo")), + { _("Scan"), menu_get_shortcut("ScanPlaylistInfo"), NULL, menu_scan_infos, NULL }, { _("Add"), NULL, NULL, menu_open_mrlbrowser, NULL }, { NULL, NULL, NULL, NULL, NULL } @@ -1172,7 +1171,7 @@ { "SEP", NULL, "<separator>", NULL, NULL }, { _("Scan"), NULL, NULL, menu_scan_infos_selected, NULL }, { _("Add"), NULL, NULL, menu_open_mrlbrowser, NULL }, - { _("Edit"), (sh[shc] = menu_get_shortcut("MediamarkEditor")), + { _("Edit"), menu_get_shortcut("MediamarkEditor"), NULL, menu_playlist_mmk_editor, NULL }, { _("Delete"), NULL, NULL, menu_playlist_delete_current, NULL }, { _("Delete All"), NULL, NULL, menu_playlist_delete_all, NULL }, @@ -1200,8 +1199,12 @@ w = xitk_noskin_menu_create(wl, &menu, x, y); - while(shc > 0) - free(sh[--shc]); + for (i = 0; i < sizeof(menu_entries_nosel)/sizeof(*menu_entries_nosel); i++) + if (menu_entries_nosel[i].shortcut) + free(menu_entries_nosel[i].shortcut); + for (i = 0; i < sizeof(menu_entries_sel)/sizeof(*menu_entries_sel); i++) + if (menu_entries_sel[i].shortcut) + free(menu_entries_sel[i].shortcut); if(!selected && gGui->playlist.num) { xitk_menu_entry_t menu_entry; ---------------------------------------------------------------------- Comment By: Alex Stewart (foogod) Date: 2005-07-04 13:02 Message: Logged In: YES user_id=61071 I've found the problem. In menus.c, the code uses the following construct several times when constructing the menu structure array: (sh[shc++] = menu_get_shortcut(...)), The problem is that this construct involves an increment operator ("shc++") and is used multiple times in the statement that constructs the array. The behavior of multiple increment operations performed on the same variable in the same statement is explicitly undefined by both ANSI C and GNU C, so relying on any of this to work right was a bad idea to begin with, and as of gcc 4 (where the behavior apparently changed), we now see why. ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-07-02 03:17 Message: Logged In: YES user_id=1171136 I could solve the problem for me by compiling xine-0.99.3-4.2.fc4.src.rpm (freshrpms, this one is already gcc4 patched) using either the gcc4 or gcc32 compiler, while leaving xine-lib as it was. If this is a memory related BUG then it is very likely undefined behavior. Could anybody confirm this? ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-06-27 01:33 Message: Logged In: YES user_id=28008 Just to add some more to this (I'm logged in now). menu_get_shortcut appears to try and allocate memory using strdup, for sh[shc++] to point to in the video_window_menu. From what I can gather from some initial investigation (my C is a little rusty), this memory is not correctly allocated - hence the crash when the free() loop begins later in the function. menu_get_shortcut DOES get the correct keymap key for each of the keys (e.g. "f" = ToggleFullscreen, etc), but it does not show correctly on the menu when it appears. On my system all the shortcuts appear as "q" - which is coincidentally the last menu option/shortcut - even though pressing the relevant keys still does whatever they're bound to, etc. My guess is that the while/free loop is correct, but that memory is not being allocated properly by the strdup. Could this be a change in GCC4 behaviour causing this? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 16:56 Message: Logged In: NO I've found the problem. In src/xitk/menus.c there appears to be an attempt to free non-malloc'd memory. If you comment out the following lines: while(shc > 0) free(sh[--shc]); ...in the function video_window_menu then the menu appears correctly and XINE doesn't crash. Although the menu does appear, the shortcuts are not shown correctly which leads me to think the menu_get_shortcut function isn't working correctly, or - at least - memory isn't being allocated correctly. This is borne out by the fact that I noticed no additional memory usage from commenting out those lines, when in reality they should cause a memory leak. This doesn't help anyone with the RPMs, but just thought you might want to know. I have submitted this info to the repo controller at FreshRPMs. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 14:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 13:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 10:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 05:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-07-05 13:12:36
|
Bugs item #1223022, was opened at 2005-06-18 02:46 Message generated for change (Comment added) made by durzel You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-07-05 13:12 Message: Logged In: YES user_id=28008 "The behavior of multiple increment operations performed on the same variable in the same statement is explicitly undefined by both ANSI C and GNU C, so relying on any of this to work right was a bad idea to begin with, and as of gcc 4 (where the behavior apparently changed), we now see why." That would certainly explain why this problem has only manifested itself in GCC4 (Fedora Core 4). Nice find! :) ---------------------------------------------------------------------- Comment By: Alex Stewart (foogod) Date: 2005-07-04 20:07 Message: Logged In: YES user_id=61071 The following patch should fix this issue (I wanted to attach this as a file, but can't find any way to do that..). It also incidentally fixes a small memory leak in playlist_menu in the process: --- xine-ui-0.99.3/src/xitk/menus.c.orig 2004-10-19 14:18:48.000000000 -0700 +++ xine-ui-0.99.3/src/xitk/menus.c 2005-07-04 12:38:53.000000000 -0700 @@ -425,8 +425,7 @@ int x, y; xitk_menu_widget_t menu; char buffer[2048]; - char *sh[255]; - int shc = 0; + int i; xitk_widget_t *w; #ifdef HAVE_XINERAMA int fullscr_mode = (FULLSCR_MODE | FULLSCR_XI_MODE); @@ -439,15 +438,15 @@ "<title>", NULL, NULL }, { _("Show controls"), - (sh[shc++] = menu_get_shortcut("ToggleVisibility")), + menu_get_shortcut("ToggleVisibility"), panel_is_visible() ? "<checked>" : "<check>", menu_panel_visibility, NULL }, { _("Show video window"), - (sh[shc++] = menu_get_shortcut("ToggleWindowVisibility")), + menu_get_shortcut("ToggleWindowVisibility"), video_window_is_visible() ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_TOGGLE }, { _("Fullscreen"), - (sh[shc++] = menu_get_shortcut("ToggleFullscreen")), + menu_get_shortcut("ToggleFullscreen"), (video_window_get_fullscreen_mode() & fullscr_mode) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_FULLSCR }, { "SEP", @@ -459,7 +458,7 @@ "<branch>", NULL, NULL }, { _("Open/File..."), - (sh[shc++] = menu_get_shortcut("FileSelector")), + menu_get_shortcut("FileSelector"), NULL, menu_file_selector, NULL }, { _("Open/Playlist..."), @@ -467,7 +466,7 @@ NULL, menu_playlist_ctrl, (void *) PLAYL_LOAD }, { _("Open/Location..."), - (sh[shc++] = menu_get_shortcut("MrlBrowser")), + menu_get_shortcut("MrlBrowser"), NULL, menu_mrl_browser, NULL }, { _("Playback"), @@ -475,15 +474,15 @@ "<Branch>", NULL, NULL }, { _("Playback/Play"), - (sh[shc++] = menu_get_shortcut("Play")), + menu_get_shortcut("Play"), NULL, menu_playback_ctrl, (void *) PLAYB_PLAY }, { _("Playback/Stop"), - (sh[shc++] = menu_get_shortcut("Stop")), + menu_get_shortcut("Stop"), NULL, menu_playback_ctrl, (void *) PLAYB_STOP }, { _("Playback/Pause"), - (sh[shc++] = menu_get_shortcut("Pause")), + menu_get_shortcut("Pause"), NULL, menu_playback_ctrl, (void *) PLAYB_PAUSE }, { _("Playback/SEP"), @@ -491,11 +490,11 @@ "<separator>", NULL, NULL }, { _("Playback/Next MRL"), - (sh[shc++] = menu_get_shortcut("NextMrl")), + menu_get_shortcut("NextMrl"), NULL, menu_playback_ctrl, (void *) PLAYB_NEXT }, { _("Playback/Previous MRL"), - (sh[shc++] = menu_get_shortcut("PriorMrl")), + menu_get_shortcut("PriorMrl"), NULL, menu_playback_ctrl, (void *) PLAYB_PREV }, { _("Playback/SEP"), @@ -503,11 +502,11 @@ "<separator>", NULL, NULL }, { _("Playback/Increase Speed"), - (sh[shc++] = menu_get_shortcut("SpeedFaster")), + menu_get_shortcut("SpeedFaster"), NULL, menu_playback_ctrl, (void *) PLAYB_SPEEDM }, { _("Playback/Decrease Speed"), - (sh[shc++] = menu_get_shortcut("SpeedSlower")), + menu_get_shortcut("SpeedSlower"), NULL, menu_playback_ctrl, (void *) PLAYB_SPEEDL }, { _("Playlist"), @@ -523,7 +522,7 @@ NULL, menu_playlist_ctrl, (void *) PLAYL_LOAD }, { _("Playlist/Editor..."), - (sh[shc++] = menu_get_shortcut("PlaylistEditor")), + menu_get_shortcut("PlaylistEditor"), NULL, menu_playlist_ctrl, (void *) PLAYL_EDIT }, { _("Playlist/SEP"), @@ -555,7 +554,7 @@ (gGui->playlist.loop == PLAYLIST_LOOP_SHUF_PLUS) ? "<checked>" : "<check>", menu_playlist_ctrl, (void *) PLAYL_SHUF_PLUS }, { _("Playlist/Continue Playback"), - (sh[shc++] = menu_get_shortcut("PlaylistStop")), + menu_get_shortcut("PlaylistStop"), (gGui->playlist.control & PLAYLIST_CONTROL_STOP) ? "<check>" : "<checked>", menu_playlist_ctrl, (void *) PLAYL_CTRL_STOP }, { "SEP", @@ -567,7 +566,7 @@ "<branch>", NULL, NULL }, { _("Menus/Navigation..."), - (sh[shc++] = menu_get_shortcut("EventSenderShow")), + menu_get_shortcut("EventSenderShow"), NULL, menu_event_sender, NULL }, { _("Menus/SEP"), @@ -583,11 +582,11 @@ "<branch>", NULL, NULL }, { _("Stream/Information..."), - (sh[shc++] = menu_get_shortcut("StreamInfosShow")), + menu_get_shortcut("StreamInfosShow"), NULL, menu_stream, (void *) STREAM_WINI }, { _("Stream/Information (OSD)"), - (sh[shc++] = menu_get_shortcut("OSDStreamInfos")), + menu_get_shortcut("OSDStreamInfos"), NULL, menu_stream, (void *) STREAM_OSDI }, { _("Video"), @@ -595,7 +594,7 @@ "<branch>", NULL, NULL }, { _("Video/Deinterlace"), - (sh[shc++] = menu_get_shortcut("ToggleInterleave")), + menu_get_shortcut("ToggleInterleave"), (gGui->deinterlace_enable) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_INTERLEAVE }, { _("Video/SEP"), @@ -627,15 +626,15 @@ (aspect == XINE_VO_ASPECT_DVB) ? "<checked>" : "<check>", menu_aspect, (void *) XINE_VO_ASPECT_DVB }, { _("Video/200%"), - (sh[shc++] = menu_get_shortcut("Window200")), + menu_get_shortcut("Window200"), (video_window_get_mag() == 2.0) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_2X }, { _("Video/100%"), - (sh[shc++] = menu_get_shortcut("Window100")), + menu_get_shortcut("Window100"), (video_window_get_mag() == 1.0) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_1X }, { _("Video/50%"), - (sh[shc++] = menu_get_shortcut("Window50")), + menu_get_shortcut("Window50"), (video_window_get_mag() == .5) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO__5X }, { _("Video/SEP"), @@ -647,11 +646,11 @@ "<branch>", NULL, NULL }, { _("Video/Postprocess/Chain Reaction..."), - (sh[shc++] = menu_get_shortcut("VPProcessShow")), + menu_get_shortcut("VPProcessShow"), NULL, menu_video_ctrl, (void *) VIDEO_PPROCESS }, { _("Video/Postprocess/Enable Postprocessing"), - (sh[shc++] = menu_get_shortcut("VPProcessEnable")), + menu_get_shortcut("VPProcessEnable"), gGui->post_enable ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_PPROCESS_ENABLE }, { _("Audio"), @@ -663,7 +662,7 @@ "<branch>", NULL, NULL }, { _("Audio/Volume/Mute"), - (sh[shc++] = menu_get_shortcut("Mute")), + menu_get_shortcut("Mute"), gGui->mixer.mute ? "<checked>" : "<check>", menu_audio_ctrl, (void *) AUDIO_MUTE }, { _("Audio/Volume/Increase 10%"), @@ -699,25 +698,25 @@ "<branch>", NULL, NULL }, { _("Settings/Setup..."), - (sh[shc++] = menu_get_shortcut("SetupShow")), + menu_get_shortcut("SetupShow"), NULL, menu_settings, (void *) SETS_SETUP }, #ifdef HAVE_CURL { _("Settings/Skin Downloader..."), - (sh[shc++] = menu_get_shortcut("SkinDownload")), + menu_get_shortcut("SkinDownload"), NULL, menu_settings, (void *) SETS_SKINDL }, #endif { _("Settings/Keymap Editor..."), - (sh[shc++] = menu_get_shortcut("KeyBindingEditor")), + menu_get_shortcut("KeyBindingEditor"), NULL, menu_settings, (void *) SETS_KEYMAP }, { _("Settings/Video..."), - (sh[shc++] = menu_get_shortcut("ControlShow")), + menu_get_shortcut("ControlShow"), NULL, menu_settings, (void *) SETS_VIDEO }, { _("Settings/TV Analog..."), - (sh[shc++] = menu_get_shortcut("TVAnalogShow")), + menu_get_shortcut("TVAnalogShow"), NULL, menu_settings, (void *) SETS_TVANALOG }, { "SEP", @@ -725,11 +724,11 @@ "<separator>", NULL, NULL }, { _("Help..."), - (sh[shc++] = menu_get_shortcut("HelpShow")), + menu_get_shortcut("HelpShow"), NULL, menu_help, NULL }, { _("Logs..."), - (sh[shc++] = menu_get_shortcut("ViewlogShow")), + menu_get_shortcut("ViewlogShow"), NULL, menu_settings, (void *) SETS_LOGS }, { "SEP", @@ -737,7 +736,7 @@ "<separator>", NULL, NULL }, { _("Quit"), - (sh[shc++] = menu_get_shortcut("Quit")), + menu_get_shortcut("Quit"), NULL, menu_quit, NULL }, { NULL, @@ -765,8 +764,9 @@ w = xitk_noskin_menu_create(wl, &menu, x + 1, y + 1); - while(shc > 0) - free(sh[--shc]); + for (i = 0; i < sizeof(menu_entries)/sizeof(*menu_entries); i++) + if (menu_entries[i].shortcut) + free(menu_entries[i].shortcut); /* Subtitle loader */ if(gGui->playlist.num) { @@ -1155,12 +1155,11 @@ xitk_menu_widget_t menu; xitk_widget_t *w = NULL; char buffer[2048]; - char *sh[50]; - int shc = 0; + int i; xitk_menu_entry_t menu_entries_nosel[] = { { NULL , NULL, "<title>", NULL, NULL }, { "SEP", NULL, "<separator>", NULL, NULL }, - { _("Scan"), (sh[shc] = menu_get_shortcut("ScanPlaylistInfo")), + { _("Scan"), menu_get_shortcut("ScanPlaylistInfo"), NULL, menu_scan_infos, NULL }, { _("Add"), NULL, NULL, menu_open_mrlbrowser, NULL }, { NULL, NULL, NULL, NULL, NULL } @@ -1172,7 +1171,7 @@ { "SEP", NULL, "<separator>", NULL, NULL }, { _("Scan"), NULL, NULL, menu_scan_infos_selected, NULL }, { _("Add"), NULL, NULL, menu_open_mrlbrowser, NULL }, - { _("Edit"), (sh[shc] = menu_get_shortcut("MediamarkEditor")), + { _("Edit"), menu_get_shortcut("MediamarkEditor"), NULL, menu_playlist_mmk_editor, NULL }, { _("Delete"), NULL, NULL, menu_playlist_delete_current, NULL }, { _("Delete All"), NULL, NULL, menu_playlist_delete_all, NULL }, @@ -1200,8 +1199,12 @@ w = xitk_noskin_menu_create(wl, &menu, x, y); - while(shc > 0) - free(sh[--shc]); + for (i = 0; i < sizeof(menu_entries_nosel)/sizeof(*menu_entries_nosel); i++) + if (menu_entries_nosel[i].shortcut) + free(menu_entries_nosel[i].shortcut); + for (i = 0; i < sizeof(menu_entries_sel)/sizeof(*menu_entries_sel); i++) + if (menu_entries_sel[i].shortcut) + free(menu_entries_sel[i].shortcut); if(!selected && gGui->playlist.num) { xitk_menu_entry_t menu_entry; ---------------------------------------------------------------------- Comment By: Alex Stewart (foogod) Date: 2005-07-04 20:02 Message: Logged In: YES user_id=61071 I've found the problem. In menus.c, the code uses the following construct several times when constructing the menu structure array: (sh[shc++] = menu_get_shortcut(...)), The problem is that this construct involves an increment operator ("shc++") and is used multiple times in the statement that constructs the array. The behavior of multiple increment operations performed on the same variable in the same statement is explicitly undefined by both ANSI C and GNU C, so relying on any of this to work right was a bad idea to begin with, and as of gcc 4 (where the behavior apparently changed), we now see why. ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-07-02 10:17 Message: Logged In: YES user_id=1171136 I could solve the problem for me by compiling xine-0.99.3-4.2.fc4.src.rpm (freshrpms, this one is already gcc4 patched) using either the gcc4 or gcc32 compiler, while leaving xine-lib as it was. If this is a memory related BUG then it is very likely undefined behavior. Could anybody confirm this? ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-06-27 08:33 Message: Logged In: YES user_id=28008 Just to add some more to this (I'm logged in now). menu_get_shortcut appears to try and allocate memory using strdup, for sh[shc++] to point to in the video_window_menu. From what I can gather from some initial investigation (my C is a little rusty), this memory is not correctly allocated - hence the crash when the free() loop begins later in the function. menu_get_shortcut DOES get the correct keymap key for each of the keys (e.g. "f" = ToggleFullscreen, etc), but it does not show correctly on the menu when it appears. On my system all the shortcuts appear as "q" - which is coincidentally the last menu option/shortcut - even though pressing the relevant keys still does whatever they're bound to, etc. My guess is that the while/free loop is correct, but that memory is not being allocated properly by the strdup. Could this be a change in GCC4 behaviour causing this? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 23:56 Message: Logged In: NO I've found the problem. In src/xitk/menus.c there appears to be an attempt to free non-malloc'd memory. If you comment out the following lines: while(shc > 0) free(sh[--shc]); ...in the function video_window_menu then the menu appears correctly and XINE doesn't crash. Although the menu does appear, the shortcuts are not shown correctly which leads me to think the menu_get_shortcut function isn't working correctly, or - at least - memory isn't being allocated correctly. This is borne out by the fact that I noticed no additional memory usage from commenting out those lines, when in reality they should cause a memory leak. This doesn't help anyone with the RPMs, but just thought you might want to know. I have submitted this info to the repo controller at FreshRPMs. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 21:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 20:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 17:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 12:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |
From: SourceForge.net <no...@so...> - 2005-07-20 19:17:05
|
Bugs item #1223022, was opened at 2005-06-17 23:46 Message generated for change (Comment added) made by miguelfreitas You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: gui Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Stefan Becker (stefanb2) Assigned to: Nobody/Anonymous (nobody) Summary: xiTK received SIGSEGV signal, RIP - part II Initial Comment: I can reproduce the same error message by just pressing the right mouse button anywhere after xine has started in idle screen. With Fedora Core 4 + xine-0.99.3-4.2.fc4 (from freshrpms) I get these debugging messages after pressing the right mouse button: .... This is xine (X11 gui) - a free video player v0.99.3. (c) 2000-2004 The xine Team. Built with xine library 1.0.1 (1.0.1) Found xine library version: 1.0.1 (1.0.1). Plateform informations: ---------------------- system name : Linux node name : *********** release : 2.6.11-1.1369_FC4 version : #1 Thu Jun 2 22:55:56 EDT 2005 machine : i686 CPU Informations: ---------------- processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : mobile AMD Athlon(tm) XP 2200+ .... xine_play .. (shows xine animation) play_internal ...done .... <--- here I press the right mouse button *** glibc detected *** /usr/bin/xine: free(): invalid pointer: 0x00c21880 *** ======= Backtrace: ========= /lib/libc.so.6[0xb5d424] /lib/libc.so.6(__libc_free+0x77)[0xb5d95f] /usr/bin/xine[0x807cbda] ======= Memory map: ======== 00101000-00127000 r-xp 00000000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 00127000-0012a000 rwxp 00026000 03:03 1540115 /usr/lib/libfontconfig.so.1.0.4 0012a000-0012b000 rwxp 0012a000 00:00 0 0012b000-00134000 r-xp 00000000 03:03 786485 /lib/libnss_files-2.3.5.so 00134000-00135000 r-xp 00008000 03:03 786485 /lib/libnss_files-2.3.5.so 00135000-00136000 rwxp 00009000 03:03 786485 /lib/libnss_files-2.3.5.so 00136000-0013a000 r-xp 00000000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013a000-0013b000 rwxp 00003000 03:03 690795 /usr/lib/xine/plugins/1.0.1/xineplug_inp_vcdo.so 0013b000-0013c000 rwxp 0013b000 00:00 0 0013c000-00146000 r-xp 00000000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00146000-00147000 rwxp 0000a000 03:03 690780 /usr/lib/xine/plugins/1.0.1/xineplug_inp_cdda.so 00147000-00148000 rwxp 00147000 00:00 0 00148000-0014c000 r-xp 00000000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014c000-0014d000 rwxp 00003000 03:03 690783 /usr/lib/xine/plugins/1.0.1/xineplug_inp_file.so 0014d000-00151000 r-xp 00000000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00151000-00152000 rwxp 00003000 03:03 2505271 /usr/lib/libogg.so.0.5.2 00152000-00156000 r-xp 00000000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00156000-00157000 rwxp 00003000 03:03 1310721 /usr/X11R6/lib/libXv.so.1.0 00157000-00164000 r-xp 00000000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00164000-00165000 rwxp 0000c000 03:03 690786 /usr/lib/xine/plugins/1.0.1/xineplug_inp_mms.so 00165000-0016b000 r-xp 00000000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016b000-0016c000 rwxp 00005000 03:03 690789 /usr/lib/xine/plugins/1.0.1/xineplug_inp_pvr.so 0016c000-0017c000 r-xp 00000000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017c000-0017d000 rwxp 0000f000 03:03 690781 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvb.so 0017d000-00186000 r-xp 00000000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00186000-00188000 rwxp 00008000 03:03 2501042 /usr/lib/liba52.so.0.0.0 00188000-001bf000 r-xp 00000000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001bf000-001c0000 rwxp 00037000 03:03 690782 /usr/lib/xine/plugins/1.0.1/xineplug_inp_dvd.so 001c0000-001d5000 r-xp 00000000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d5000-001d6000 rwxp 00014000 03:03 690725 /usr/lib/xine/plugins/1.0.1/xineplug_decode_a52.so 001d6000-001d7000 rwxp 001d6000 00:00 0 001d7000-001e5000 r-xp 00000000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e5000-001e8000 rwxp 0000e000 03:03 2499777 /usr/lib/libfaac.so.0.0.0 001e8000-001ec000 r-xp 00000000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ec000-001ed000 rwxp 00003000 03:03 690749 /usr/lib/xine/plugins/1.0.1/xineplug_decode_sputext.so 001ed000-001ee000 r-xp 00000000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ee000-001ef000 rwxp 00001000 03:03 690800 /usr/lib/xine/plugins/1.0.1/xineplug_vo_out_none.so 001ef000-001f0000 r-xp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f0000-001f1000 rwxp 00000000 03:03 690761 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_image.so 001f1000-0023e000 r-xp 00000000 03:03 2504014 /usr/lib/libxine.so.1.12.0 0023e000-00242000 rwxp 0004d000 03:03 2504014 /usr/lib/libxine.so.1.12.0 00242000-00246000 rwxp 00242000 00:00 0 00246000-00248000 r-xp 00000000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00248000-00249000 rwxp 00001000 03:03 690777 /usr/lib/xine/plugins/1.0.1/xineplug_dmx_yuv4mpeg2.so 00249000-00258000 r-xp 00000000 03:03 787581 /lib/libresolv-2.3.5.so 00258000-00259000 waiting for X server to shut down... Looks like a doube-free() to me... Happy now? ---------------------------------------------------------------------- Comment By: Miguel Freitas (miguelfreitas) Date: 2005-07-20 16:17 Message: Logged In: YES user_id=148691 This bug entry is believed to be fixed in cvs. Please reopen it as needed. ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-07-05 10:12 Message: Logged In: YES user_id=28008 "The behavior of multiple increment operations performed on the same variable in the same statement is explicitly undefined by both ANSI C and GNU C, so relying on any of this to work right was a bad idea to begin with, and as of gcc 4 (where the behavior apparently changed), we now see why." That would certainly explain why this problem has only manifested itself in GCC4 (Fedora Core 4). Nice find! :) ---------------------------------------------------------------------- Comment By: Alex Stewart (foogod) Date: 2005-07-04 17:07 Message: Logged In: YES user_id=61071 The following patch should fix this issue (I wanted to attach this as a file, but can't find any way to do that..). It also incidentally fixes a small memory leak in playlist_menu in the process: --- xine-ui-0.99.3/src/xitk/menus.c.orig 2004-10-19 14:18:48.000000000 -0700 +++ xine-ui-0.99.3/src/xitk/menus.c 2005-07-04 12:38:53.000000000 -0700 @@ -425,8 +425,7 @@ int x, y; xitk_menu_widget_t menu; char buffer[2048]; - char *sh[255]; - int shc = 0; + int i; xitk_widget_t *w; #ifdef HAVE_XINERAMA int fullscr_mode = (FULLSCR_MODE | FULLSCR_XI_MODE); @@ -439,15 +438,15 @@ "<title>", NULL, NULL }, { _("Show controls"), - (sh[shc++] = menu_get_shortcut("ToggleVisibility")), + menu_get_shortcut("ToggleVisibility"), panel_is_visible() ? "<checked>" : "<check>", menu_panel_visibility, NULL }, { _("Show video window"), - (sh[shc++] = menu_get_shortcut("ToggleWindowVisibility")), + menu_get_shortcut("ToggleWindowVisibility"), video_window_is_visible() ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_TOGGLE }, { _("Fullscreen"), - (sh[shc++] = menu_get_shortcut("ToggleFullscreen")), + menu_get_shortcut("ToggleFullscreen"), (video_window_get_fullscreen_mode() & fullscr_mode) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_FULLSCR }, { "SEP", @@ -459,7 +458,7 @@ "<branch>", NULL, NULL }, { _("Open/File..."), - (sh[shc++] = menu_get_shortcut("FileSelector")), + menu_get_shortcut("FileSelector"), NULL, menu_file_selector, NULL }, { _("Open/Playlist..."), @@ -467,7 +466,7 @@ NULL, menu_playlist_ctrl, (void *) PLAYL_LOAD }, { _("Open/Location..."), - (sh[shc++] = menu_get_shortcut("MrlBrowser")), + menu_get_shortcut("MrlBrowser"), NULL, menu_mrl_browser, NULL }, { _("Playback"), @@ -475,15 +474,15 @@ "<Branch>", NULL, NULL }, { _("Playback/Play"), - (sh[shc++] = menu_get_shortcut("Play")), + menu_get_shortcut("Play"), NULL, menu_playback_ctrl, (void *) PLAYB_PLAY }, { _("Playback/Stop"), - (sh[shc++] = menu_get_shortcut("Stop")), + menu_get_shortcut("Stop"), NULL, menu_playback_ctrl, (void *) PLAYB_STOP }, { _("Playback/Pause"), - (sh[shc++] = menu_get_shortcut("Pause")), + menu_get_shortcut("Pause"), NULL, menu_playback_ctrl, (void *) PLAYB_PAUSE }, { _("Playback/SEP"), @@ -491,11 +490,11 @@ "<separator>", NULL, NULL }, { _("Playback/Next MRL"), - (sh[shc++] = menu_get_shortcut("NextMrl")), + menu_get_shortcut("NextMrl"), NULL, menu_playback_ctrl, (void *) PLAYB_NEXT }, { _("Playback/Previous MRL"), - (sh[shc++] = menu_get_shortcut("PriorMrl")), + menu_get_shortcut("PriorMrl"), NULL, menu_playback_ctrl, (void *) PLAYB_PREV }, { _("Playback/SEP"), @@ -503,11 +502,11 @@ "<separator>", NULL, NULL }, { _("Playback/Increase Speed"), - (sh[shc++] = menu_get_shortcut("SpeedFaster")), + menu_get_shortcut("SpeedFaster"), NULL, menu_playback_ctrl, (void *) PLAYB_SPEEDM }, { _("Playback/Decrease Speed"), - (sh[shc++] = menu_get_shortcut("SpeedSlower")), + menu_get_shortcut("SpeedSlower"), NULL, menu_playback_ctrl, (void *) PLAYB_SPEEDL }, { _("Playlist"), @@ -523,7 +522,7 @@ NULL, menu_playlist_ctrl, (void *) PLAYL_LOAD }, { _("Playlist/Editor..."), - (sh[shc++] = menu_get_shortcut("PlaylistEditor")), + menu_get_shortcut("PlaylistEditor"), NULL, menu_playlist_ctrl, (void *) PLAYL_EDIT }, { _("Playlist/SEP"), @@ -555,7 +554,7 @@ (gGui->playlist.loop == PLAYLIST_LOOP_SHUF_PLUS) ? "<checked>" : "<check>", menu_playlist_ctrl, (void *) PLAYL_SHUF_PLUS }, { _("Playlist/Continue Playback"), - (sh[shc++] = menu_get_shortcut("PlaylistStop")), + menu_get_shortcut("PlaylistStop"), (gGui->playlist.control & PLAYLIST_CONTROL_STOP) ? "<check>" : "<checked>", menu_playlist_ctrl, (void *) PLAYL_CTRL_STOP }, { "SEP", @@ -567,7 +566,7 @@ "<branch>", NULL, NULL }, { _("Menus/Navigation..."), - (sh[shc++] = menu_get_shortcut("EventSenderShow")), + menu_get_shortcut("EventSenderShow"), NULL, menu_event_sender, NULL }, { _("Menus/SEP"), @@ -583,11 +582,11 @@ "<branch>", NULL, NULL }, { _("Stream/Information..."), - (sh[shc++] = menu_get_shortcut("StreamInfosShow")), + menu_get_shortcut("StreamInfosShow"), NULL, menu_stream, (void *) STREAM_WINI }, { _("Stream/Information (OSD)"), - (sh[shc++] = menu_get_shortcut("OSDStreamInfos")), + menu_get_shortcut("OSDStreamInfos"), NULL, menu_stream, (void *) STREAM_OSDI }, { _("Video"), @@ -595,7 +594,7 @@ "<branch>", NULL, NULL }, { _("Video/Deinterlace"), - (sh[shc++] = menu_get_shortcut("ToggleInterleave")), + menu_get_shortcut("ToggleInterleave"), (gGui->deinterlace_enable) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_INTERLEAVE }, { _("Video/SEP"), @@ -627,15 +626,15 @@ (aspect == XINE_VO_ASPECT_DVB) ? "<checked>" : "<check>", menu_aspect, (void *) XINE_VO_ASPECT_DVB }, { _("Video/200%"), - (sh[shc++] = menu_get_shortcut("Window200")), + menu_get_shortcut("Window200"), (video_window_get_mag() == 2.0) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_2X }, { _("Video/100%"), - (sh[shc++] = menu_get_shortcut("Window100")), + menu_get_shortcut("Window100"), (video_window_get_mag() == 1.0) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_1X }, { _("Video/50%"), - (sh[shc++] = menu_get_shortcut("Window50")), + menu_get_shortcut("Window50"), (video_window_get_mag() == .5) ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO__5X }, { _("Video/SEP"), @@ -647,11 +646,11 @@ "<branch>", NULL, NULL }, { _("Video/Postprocess/Chain Reaction..."), - (sh[shc++] = menu_get_shortcut("VPProcessShow")), + menu_get_shortcut("VPProcessShow"), NULL, menu_video_ctrl, (void *) VIDEO_PPROCESS }, { _("Video/Postprocess/Enable Postprocessing"), - (sh[shc++] = menu_get_shortcut("VPProcessEnable")), + menu_get_shortcut("VPProcessEnable"), gGui->post_enable ? "<checked>" : "<check>", menu_video_ctrl, (void *) VIDEO_PPROCESS_ENABLE }, { _("Audio"), @@ -663,7 +662,7 @@ "<branch>", NULL, NULL }, { _("Audio/Volume/Mute"), - (sh[shc++] = menu_get_shortcut("Mute")), + menu_get_shortcut("Mute"), gGui->mixer.mute ? "<checked>" : "<check>", menu_audio_ctrl, (void *) AUDIO_MUTE }, { _("Audio/Volume/Increase 10%"), @@ -699,25 +698,25 @@ "<branch>", NULL, NULL }, { _("Settings/Setup..."), - (sh[shc++] = menu_get_shortcut("SetupShow")), + menu_get_shortcut("SetupShow"), NULL, menu_settings, (void *) SETS_SETUP }, #ifdef HAVE_CURL { _("Settings/Skin Downloader..."), - (sh[shc++] = menu_get_shortcut("SkinDownload")), + menu_get_shortcut("SkinDownload"), NULL, menu_settings, (void *) SETS_SKINDL }, #endif { _("Settings/Keymap Editor..."), - (sh[shc++] = menu_get_shortcut("KeyBindingEditor")), + menu_get_shortcut("KeyBindingEditor"), NULL, menu_settings, (void *) SETS_KEYMAP }, { _("Settings/Video..."), - (sh[shc++] = menu_get_shortcut("ControlShow")), + menu_get_shortcut("ControlShow"), NULL, menu_settings, (void *) SETS_VIDEO }, { _("Settings/TV Analog..."), - (sh[shc++] = menu_get_shortcut("TVAnalogShow")), + menu_get_shortcut("TVAnalogShow"), NULL, menu_settings, (void *) SETS_TVANALOG }, { "SEP", @@ -725,11 +724,11 @@ "<separator>", NULL, NULL }, { _("Help..."), - (sh[shc++] = menu_get_shortcut("HelpShow")), + menu_get_shortcut("HelpShow"), NULL, menu_help, NULL }, { _("Logs..."), - (sh[shc++] = menu_get_shortcut("ViewlogShow")), + menu_get_shortcut("ViewlogShow"), NULL, menu_settings, (void *) SETS_LOGS }, { "SEP", @@ -737,7 +736,7 @@ "<separator>", NULL, NULL }, { _("Quit"), - (sh[shc++] = menu_get_shortcut("Quit")), + menu_get_shortcut("Quit"), NULL, menu_quit, NULL }, { NULL, @@ -765,8 +764,9 @@ w = xitk_noskin_menu_create(wl, &menu, x + 1, y + 1); - while(shc > 0) - free(sh[--shc]); + for (i = 0; i < sizeof(menu_entries)/sizeof(*menu_entries); i++) + if (menu_entries[i].shortcut) + free(menu_entries[i].shortcut); /* Subtitle loader */ if(gGui->playlist.num) { @@ -1155,12 +1155,11 @@ xitk_menu_widget_t menu; xitk_widget_t *w = NULL; char buffer[2048]; - char *sh[50]; - int shc = 0; + int i; xitk_menu_entry_t menu_entries_nosel[] = { { NULL , NULL, "<title>", NULL, NULL }, { "SEP", NULL, "<separator>", NULL, NULL }, - { _("Scan"), (sh[shc] = menu_get_shortcut("ScanPlaylistInfo")), + { _("Scan"), menu_get_shortcut("ScanPlaylistInfo"), NULL, menu_scan_infos, NULL }, { _("Add"), NULL, NULL, menu_open_mrlbrowser, NULL }, { NULL, NULL, NULL, NULL, NULL } @@ -1172,7 +1171,7 @@ { "SEP", NULL, "<separator>", NULL, NULL }, { _("Scan"), NULL, NULL, menu_scan_infos_selected, NULL }, { _("Add"), NULL, NULL, menu_open_mrlbrowser, NULL }, - { _("Edit"), (sh[shc] = menu_get_shortcut("MediamarkEditor")), + { _("Edit"), menu_get_shortcut("MediamarkEditor"), NULL, menu_playlist_mmk_editor, NULL }, { _("Delete"), NULL, NULL, menu_playlist_delete_current, NULL }, { _("Delete All"), NULL, NULL, menu_playlist_delete_all, NULL }, @@ -1200,8 +1199,12 @@ w = xitk_noskin_menu_create(wl, &menu, x, y); - while(shc > 0) - free(sh[--shc]); + for (i = 0; i < sizeof(menu_entries_nosel)/sizeof(*menu_entries_nosel); i++) + if (menu_entries_nosel[i].shortcut) + free(menu_entries_nosel[i].shortcut); + for (i = 0; i < sizeof(menu_entries_sel)/sizeof(*menu_entries_sel); i++) + if (menu_entries_sel[i].shortcut) + free(menu_entries_sel[i].shortcut); if(!selected && gGui->playlist.num) { xitk_menu_entry_t menu_entry; ---------------------------------------------------------------------- Comment By: Alex Stewart (foogod) Date: 2005-07-04 17:02 Message: Logged In: YES user_id=61071 I've found the problem. In menus.c, the code uses the following construct several times when constructing the menu structure array: (sh[shc++] = menu_get_shortcut(...)), The problem is that this construct involves an increment operator ("shc++") and is used multiple times in the statement that constructs the array. The behavior of multiple increment operations performed on the same variable in the same statement is explicitly undefined by both ANSI C and GNU C, so relying on any of this to work right was a bad idea to begin with, and as of gcc 4 (where the behavior apparently changed), we now see why. ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-07-02 07:17 Message: Logged In: YES user_id=1171136 I could solve the problem for me by compiling xine-0.99.3-4.2.fc4.src.rpm (freshrpms, this one is already gcc4 patched) using either the gcc4 or gcc32 compiler, while leaving xine-lib as it was. If this is a memory related BUG then it is very likely undefined behavior. Could anybody confirm this? ---------------------------------------------------------------------- Comment By: Darren Coleman (durzel) Date: 2005-06-27 05:33 Message: Logged In: YES user_id=28008 Just to add some more to this (I'm logged in now). menu_get_shortcut appears to try and allocate memory using strdup, for sh[shc++] to point to in the video_window_menu. From what I can gather from some initial investigation (my C is a little rusty), this memory is not correctly allocated - hence the crash when the free() loop begins later in the function. menu_get_shortcut DOES get the correct keymap key for each of the keys (e.g. "f" = ToggleFullscreen, etc), but it does not show correctly on the menu when it appears. On my system all the shortcuts appear as "q" - which is coincidentally the last menu option/shortcut - even though pressing the relevant keys still does whatever they're bound to, etc. My guess is that the while/free loop is correct, but that memory is not being allocated properly by the strdup. Could this be a change in GCC4 behaviour causing this? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 20:56 Message: Logged In: NO I've found the problem. In src/xitk/menus.c there appears to be an attempt to free non-malloc'd memory. If you comment out the following lines: while(shc > 0) free(sh[--shc]); ...in the function video_window_menu then the menu appears correctly and XINE doesn't crash. Although the menu does appear, the shortcuts are not shown correctly which leads me to think the menu_get_shortcut function isn't working correctly, or - at least - memory isn't being allocated correctly. This is borne out by the fact that I noticed no additional memory usage from commenting out those lines, when in reality they should cause a memory leak. This doesn't help anyone with the RPMs, but just thought you might want to know. I have submitted this info to the repo controller at FreshRPMs. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-26 18:45 Message: Logged In: NO Just to confirm - I get this same crash on the latest available freshrpms versions of xine (0.99.3-4.2.fc4) Tried compiling xine-lib and xine-ui manually from the source and had to patch it for GCC4 compliance before it would compile (invalid lvalue in assignment errors in some .c files). Even after having compiled it from scratch, it still crashes in the same way. :( ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-24 17:24 Message: Logged In: NO I get the same error with FC4, xine-0.99.3-0.lvn.7.4 ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-06-23 14:02 Message: Logged In: NO I can also verify this, also the same problem with xine-0.99.3-0.lvn.7.4.i386.rpm and my fedora core 4 ---------------------------------------------------------------------- Comment By: c. nolte (noltec) Date: 2005-06-21 09:51 Message: Logged In: YES user_id=1171136 I can verify this. Same OS-Specs (fc4 + xine from freshrpms). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109655&aid=1223022&group_id=9655 |