On Dec 31, 2007 12:43 PM, Reinhard Nissl rnissl@gmx.de wrote:
Hi,
VDR User schrieb:
Also, there appears to be a problem with text2skin although it still works fine. If anyone cares to have a look and possibly fix it, that'd be great!
The problem:
Stopping: VDR *** glibc detected *** ./vdr: double free or corruption (fasttop): 0x0b1ba848 *** ======= Backtrace: ========= /lib/libc.so.6[0xb7c94ac5] /lib/libc.so.6(cfree+0x90)[0xb7c98570] ./PLUGINS/lib/libvdr-text2skin.so.1.5.12(_ZN14cText2SkinI18nD0Ev+0x5f)[0xb746405f] ======= Memory map: ======== 08048000-08183000 r-xp 00000000 03:03 833366 /usr/local/dvb/vdr.source/vdr-1.5.12/vdr 08183000-0818c000 rw-p 0013a000 03:03 833366 /usr/local/dvb/vdr.source/vdr-1.5.12/vdr 0818c000-0b973000 rw-p 0818c000 00:00 0 [heap]
The problem is that text2skin's i18n.c uses the old structure tI18nPhrase which contains only 22 text entries, but iterates over I18nLanguages()->Size() entries -- and in my case, Size() returns 23, so cText2SkinI18n::Parse() will overwrite stack variables and finally cause the above double free.
As a quick workaround, modify VDR's i18n.h, e. g. like that:
typedef const char *tI18nPhrase[4*22]; ///< obsolete - switch to 'gettext'!
Thanks for the info Reinhard! I know several people who have been asking about that problem and will forward what you've shared. Btw, do you know if anyone is working on fixing text2skin or?
Cheers