OVERVIEW: Instances of VorbisFile class in pyvorbis-1.4 close the file descriptor twice in destructor. This makes any applications which use pyvorbis to play Vorbis files (e.g. media-sound/quodlibet) unusable. STEPS TO REPRODUCE: $ python -c "import ogg.vorbis; ogg.vorbis.VorbisFile('foo.ogg')" ACTUAL RESULTS: Crashes and displays a "double free or corruption" glibc error message. EXPECTED RESULTS: No output, successful termination. DETAILS: See pyvorbisfile.c, line 195. A file descriptor is fclose'd in destructor, after calling ov_clear. However, libvorbis docs specifically state that any file descriptor passed to ov_open should be closed by ov_clear, and that fclose should not be used on it. PROPOSED SOLUTION: Remove the offending fclose call before compiling.
Since pyvorbis-1.3 works fine as well, and 1.4 is broken badly, perhaps you could just as well hardmask 1.4. Also see http://sacredchao.net/quodlibet/wiki/FAQ, second question under "General".
Created attachment 67693 [details, diff] pyvorbisfile.c.patch I came across this problem and created a patch in bug #78194 (before seeing this bug). My diagnosis was exactly the same as yours. Please test and apply.
Can we get this into CVS, please?
In CVS.
fixed.