[vdr] [PATCH] vdr-1.3.39 & crash bug in schedule

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Mon Jan 23 08:31:39 CET 2006


Klaus Schmidinger wrote:
> Rolf Ahrenberg wrote:
> 
>> On Sat, 21 Jan 2006, Klaus Schmidinger wrote:
>>
>>> Since cEvent::FixEpgBugs() is called for all events that are
>>> broadcast, it now makes sure every event actually has a non-NULL
>>> title. The only loophole left is SVDRP's PUTE command, but the
>>
>>
>>
>> I'm not using any external EPG data and as I said in my earlier mail, 
>> the modification of FixEpgBugs() isn't enough and VDR 1.3.40 is 
>> crashing like before.
>>
>> Fortunately my patch mentioned in the first message of this thread 
>> works quite nicely also with VDR 1.3.40, so finnish users can also 
>> enjoy the EPG search feature.
> 
> 
> I'm afraid I don't see why it would still crash.
> You patched those places in menu.c where an event tile was
> dereferenced. Now the code
> 
>  if (!title) {
>      // we don't want any "(null)" titles
>      title = strcpyrealloc(title, tr("No title"));
>      EpgBugFixStat(12, ChannelID());
>      }
> 
> in cEvent::FixEpgBugs() makes sure that every event has a
> non-NULL title. So where exactly does it crash?

I think I know now why it still crashed on you: it's probably
because of old entries in your epg.data file.

The attached patch should fix this - and also makes sure
that any events added via PUTE have a title.

Klaus


--- epg.c       2006/01/20 14:09:48     1.51
+++ epg.c       2006/01/23 07:29:53
@@ -312,8 +312,10 @@
                                  Event->SetVersion(Version);
                                  Event->SetStartTime(StartTime);
                                  Event->SetDuration(Duration);
-                                if (newEvent)
+                                if (newEvent) {
+                                   Event->SetTitle(tr("No title"));
                                     Schedule->AddEvent(newEvent);
+                                   }
                                  }
                               }
                            }



More information about the vdr mailing list