audacious のプレイリストに曲を追加するとき、音楽ファイルでないものを追加すると
% audacious *** glibc detected *** free(): invalid next size (fast): 0x0861db80 *** zsh: abort (core dumped) audacious %
のようにクラッシュすることがある。gdb で見てみると、
(gdb) bt : 4 0x408f7821 in raise () from /lib/tls/i686/cmov/libc.so.6 5 0x408f8fb9 in abort () from /lib/tls/i686/cmov/libc.so.6 6 0x4092cc4a in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6 7 0x409344df in mallopt () from /lib/tls/i686/cmov/libc.so.6 8 0x40934582 in free () from /lib/tls/i686/cmov/libc.so.6 9 0x40882591 in operator delete () from /usr/lib/libstdc++.so.6 10 0x408825ed in operator delete[] () from /usr/lib/libstdc++.so.6 0000011 0x41bbb773 in CrolPlayer::load () from /usr/lib/audacious/Input/libadplug.so 0000012 0x41b96aef in CAdPlug::factory () from /usr/lib/audacious/Input/libadplug.so 0000013 0x41b92dab in get_iplugin_info () from /usr/lib/audacious/Input/libadplug.so 0000014 0x41b93677 in get_iplugin_info () from /usr/lib/audacious/Input/libadplug.so
どうも AdPlug が怪しい。CrolPlayer::load は src/adplug/core/rol.cxx にある。いろいろ printf とか仕掛けて追ってみると何のことはない、「standard.bnk」なる 12 文字を 9 しかないバッファに strcpy していた。バッファサイズを増やしてやると問題なくなった。パッチはこれ > vd_adplug-core-rol.cxx-bof-fix.patch
前 | 2006年 9月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
[amd64 | audacious | comp | debian | gkrelluim | kip | misc | movie | research | rime | unicon | vdr | work | えふえふ]
書いてる人: dai
パッチ等(無保証)