[vdr] vdr 2.1.2 segfaults in libc using vdr --genindex

Klaus Schmidinger Klaus.Schmidinger at tvdr.de
Mon Dec 2 17:55:17 CET 2013


On 02.12.2013 13:15, Lou wrote:
> hi list
>
> vdr 2.1.2 segfaults in libc, as soon as I use the terminal syntax (vdr --genindex) to recreate a missing index file. Trying the same thing in a user interface (vdr-sxfe) works as planed.
>
> Here's a backtrace of what's happing:
>
> /usr/local/src/vdr/vdr-2.1.2/vdr --genindex=/var/lib/video/True_blood/At_last/2013-11-29.00.30.203-0.rec/
> Speicherzugriffsfehler (Speicherabzug geschrieben)
> gdb /usr/local/src/vdr/vdr-2.1.2/vdr ./core
> Reading symbols from /usr/local/src/vdr/vdr-2.1.2/vdr...done.
> Loaded symbols for /lib/i686/cmov/libc.so.6
> <<snip>>
> Core was generated by `/usr/local/src/vdr/vdr-2.1.2/vdr --genindex=/var/lib/video/True_blood/At_l'.
> Program terminated with signal 11, Segmentation fault.
> #0  0xb7496df5 in ?? () from /lib/i686/cmov/libc.so.6
> (gdb) bt
> #0  0xb7496df5 in ?? () from /lib/i686/cmov/libc.so.6
> #1  0x0813b644 in strstr (this=0xbfb16560, FileName=0x82600a8 "/var/lib/video/True_blood/At_last/2013-11-29.00.30.203-0.rec") at /usr/include/string.h:335
> #2  cRecording (this=0xbfb16560, FileName=0x82600a8 "/var/lib/video/True_blood/At_last/2013-11-29.00.30.203-0.rec") at recording.c:814
> #3  0x0813be54 in GenerateIndex (FileName=0xbfb177ee "/var/lib/video/True_blood/At_last/2013-11-29.00.30.203-0.rec/") at recording.c:2679
> #4  0x0818c589 in main (argc=2, argv=0xbfb16904) at vdr.c:345

I guess this was caused by the changes to videodir.[ch].
For a quick fix you could try moving the line

   cVideoDirectory::SetName(VideoDirectory);

into the

           case 'v': VideoDirectory = optarg;
                     while (optarg && *optarg && optarg[strlen(optarg) - 1] == '/')
                           optarg[strlen(optarg) - 1] = 0;
                     cVideoDirectory::SetName(VideoDirectory); // <----- here!
                     break;

in vdr.c

Klaus



More information about the vdr mailing list