summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-video/vdr/files/vdr-2.4.1_ttxtsubs_segfault.patch')
-rw-r--r--media-video/vdr/files/vdr-2.4.1_ttxtsubs_segfault.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/media-video/vdr/files/vdr-2.4.1_ttxtsubs_segfault.patch b/media-video/vdr/files/vdr-2.4.1_ttxtsubs_segfault.patch
new file mode 100644
index 000000000000..deba01979610
--- /dev/null
+++ b/media-video/vdr/files/vdr-2.4.1_ttxtsubs_segfault.patch
@@ -0,0 +1,49 @@
+fixing segfault, reported on IRC #gentoo-vdr & vdr-portal.de
+https://www.vdr-portal.de/forum/index.php?thread/132017-videotextuntertitel-f%C3%BCr-vdr-2-4-0/&postID=1306478#post1306478
+
+Signed-Off-By: Joerg Bornkessel <hd_brummy@gentoo.org> ( 2020 Mar 02 )
+diff -Naur vdr-2.4.1.orig/channels.c vdr-2.4.1/channels.c
+--- vdr-2.4.1.orig/channels.c 2020-03-02 19:52:51.052496538 +0100
++++ vdr-2.4.1/channels.c 2020-03-02 19:54:05.096496538 +0100
+@@ -429,7 +429,7 @@
+ return Modified;
+ }
+
+-void cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages)
++bool cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages)
+ {
+ int mod = CHANNELMOD_NONE;
+ LOCK_CHANNELS_WRITE;
+@@ -447,7 +447,7 @@
+ totalTtxtSubtitlePages++;
+ }
+ modification |= mod;
+- Channels->SetModified();
++ return true;
+ }
+
+ void cChannel::SetSeen(void)
+diff -Naur vdr-2.4.1.orig/channels.h vdr-2.4.1/channels.h
+--- vdr-2.4.1.orig/channels.h 2020-03-02 19:52:51.052496538 +0100
++++ vdr-2.4.1/channels.h 2020-03-02 19:54:31.745496538 +0100
+@@ -212,7 +212,7 @@
+ bool SetName(const char *Name, const char *ShortName, const char *Provider);
+ bool SetPortalName(const char *PortalName);
+ bool SetPids(int Vpid, int Ppid, int Vtype, int *Apids, int *Atypes, char ALangs[][MAXLANGCODE2], int *Dpids, int *Dtypes, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid);
+- void SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages);
++ bool SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages);
+ bool SetCaIds(const int *CaIds); // list must be zero-terminated
+ bool SetCaDescriptors(int Level);
+ bool SetLinkChannels(cLinkChannels *LinkChannels);
+diff -Naur vdr-2.4.1.orig/pat.c vdr-2.4.1/pat.c
+--- vdr-2.4.1.orig/pat.c 2020-03-02 19:52:51.053496538 +0100
++++ vdr-2.4.1/pat.c 2020-03-02 19:55:40.819496538 +0100
+@@ -649,7 +649,7 @@
+ if (manualPageNumber)
+ TeletextSubtitlePages[NumTPages++] = tTeletextSubtitlePage(manualPageNumber);
+ }
+- Channel->SetTeletextSubtitlePages(TeletextSubtitlePages, NumTPages);
++ ChannelsModified |= Channel->SetTeletextSubtitlePages(TeletextSubtitlePages, NumTPages);
+ ChannelsModified |= Channel->SetCaIds(CaDescriptors->CaIds());
+ ChannelsModified |= Channel->SetSubtitlingDescriptors(SubtitlingTypes, CompositionPageIds, AncillaryPageIds);
+ }