[vdr] text2skin crash - maybe fix too

Sebastian Frei Sebastian at schnapsleichen.de
Wed Apr 19 10:14:03 CEST 2006


Hello,

I experience a segfault with my heavily patched vdr 1.3.47:

#0  0xb7d035e3 in strlen () from /lib/libc.so.6
(gdb) bt
#0  0xb7d035e3 in strlen () from /lib/libc.so.6
#1  0xb6f80788 in cText2SkinStatus::Replaying () 
from /home/vdr/lib1/libvdr-text2skin.so.1.3.47
#2  0x080f398e in cStatus::MsgReplaying (Control=0x8a6e900, Name=0x0, 
FileName=0x8a6ebb8 "/tmp/LiveBuffer/SWR1 BW", On=false)
    at status.c:41
#3  0x080bfcec in cReplayControl (this=0x8a6e900, IsLiveRec=true, 
Recorder=0x0) at recording.h:86
#4  0x08102e02 in cLiveRecorder (this=0x88c8200, ReceiverDevice=0x88962b8, 
Channel=0x0) at transfer.c:148
#5  0x081038a9 in cLiveRecorderControl::Action (this=0x88c73d8) at 
transfer.c:300
#6  0x080fad89 in cThread::StartThread (Thread=0x88c73d8) at thread.c:244
#7  0xb7ecf364 in start_thread () from /lib/libpthread.so.0
#8  0xb7d5446a in clone () from /lib/libc.so.6

Someone on the ml had a similar problem and postet a patch. I adapted this 
patch to the text2skin plugin:
--- vdr-1.3.47/PLUGINS/src/text2skin/status.c   2006-03-17 19:25:57.000000000 
+0100
+++ vdr-1.3.47.udev/PLUGINS/src/text2skin/status.c      2006-04-17 
20:32:08.000000000 +0200
@@ -8,6 +8,8 @@
 const std::string ReplayNames[__REPLAY_COUNT__] =
        { "", "normal", "mp3", "mplayer", "dvd", "vcd", "image" };

+const char* DummyName = "Dummy";
+
 cText2SkinStatus Text2SkinStatus;

 cText2SkinStatus::cText2SkinStatus(void):
@@ -32,6 +34,8 @@
 void cText2SkinStatus::Replaying(const cControl* /*Control*/, const char 
*Name,
                                                                 const char 
*FileName, bool On)
 {
+       if (!Name) Name = DummyName;
+
        Dprintf("cText2SkinStatus::Replaying(%s)\n", Name);
        eReplayMode oldMode = mReplayMode;

Common subdirectories: vdr-1.3.47/PLUGINS/src/text2skin/xml and 
vdr-1.3.47.udev/PLUGINS/src/text2skin/xml

Maybe someone who really knows what he is doing can use this.

S.




More information about the vdr mailing list