Hallo,
als ich jetzt meinen neuen VDR 2.0.1 mit aktuellem SC (aus dem HG) installiert habe, hatte ich plötzlich immer beim Beenden des VDR, wenn gerade ein verschlüsselter Sender aktiv war, einen Segfault mit Fehlercode 4. Leider wurde der VDR dann immer unkontrolliert beendet, so dass keine aktuelle Konfiguration mehr in der setup.conf gespeichert wurde und die neuen Einstellungen oft verloren gingen. Nach ausgiebiger Suche im Netz habe ich ein ähnlich gelagertes Problem gefunden, das Copperhead für das vdr-plugin-dvbapi gemeldet hatte. Da das vdr-plugin-dvbapi ja wohl vom SC abstammt :emoticon-0150-hands war es nicht sonderlich schwer, die dort gefundene Lösung auf die SC-Quellen zu adaptieren. Anbei der patch um das Problem auch im SC zu beseitigen. Vielleicht hilft es jemandem... :emoticon-0111-blush
Grüße dvb_dau23
als ich jetzt meinen neuen VDR 2.0.1 mit aktuellem SC (aus dem HG) installiert habe, hatte ich plötzlich immer beim Beenden des VDR, wenn gerade ein verschlüsselter Sender aktiv war, einen Segfault mit Fehlercode 4. Leider wurde der VDR dann immer unkontrolliert beendet, so dass keine aktuelle Konfiguration mehr in der setup.conf gespeichert wurde und die neuen Einstellungen oft verloren gingen. Nach ausgiebiger Suche im Netz habe ich ein ähnlich gelagertes Problem gefunden, das Copperhead für das vdr-plugin-dvbapi gemeldet hatte. Da das vdr-plugin-dvbapi ja wohl vom SC abstammt :emoticon-0150-hands war es nicht sonderlich schwer, die dort gefundene Lösung auf die SC-Quellen zu adaptieren. Anbei der patch um das Problem auch im SC zu beseitigen. Vielleicht hilft es jemandem... :emoticon-0111-blush
Code:
diff -Naur ./sc.orig/device-tmpl.c ./sc.new/device-tmpl.c
--- ./sc.orig/device-tmpl.c 2013-04-14 10:09:01.000000000 +0200
+++ ./sc.new/device-tmpl.c 2013-04-18 18:03:28.000000000 +0200
@@ -93,8 +93,6 @@
SCDEVICE::~SCDEVICE()
{
#ifndef SASC
- DetachAllReceivers();
- Cancel(3);
EarlyShutdown();
#endif
if(fd_ca>=0) close(fd_ca);
@@ -125,9 +123,19 @@
void SCDEVICE::EarlyShutdown(void)
{
+ DetachAllReceivers();
+ Cancel(3);
SetCamSlot(0);
- delete cam; cam=0;
- delete hwciadapter; hwciadapter=0;
+ if (cam)
+ {
+ delete cam;
+ cam=0;
+ }
+ if (hwciadapter)
+ {
+ delete hwciadapter;
+ hwciadapter=0;
+ }
}
#ifndef OWN_FULLTS
Grüße dvb_dau23
Zuletzt bearbeitet von einem Moderator: