From 82cc5c76a4fa97268a455ea6e7df18567f4af68c Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Wed, 16 Dec 2020 11:54:06 +0100 Subject: [PATCH] Improved handling missing VDRPluginDestroyer() --- CONTRIBUTORS | 1 + HISTORY | 3 ++- plugin.c | 6 +++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 3606271d..e8cd8dd8 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2771,6 +2771,7 @@ Winfried K for reporting a bug in checking the return value of the Open() call in cFileName::SetOffset() for adding initialization of cDvbFrontend::frontendInfo + for improving handling missing VDRPluginDestroyer() Hans-Werner Hilse for adding the command line option --userdump to enable core dumps in case VDR diff --git a/HISTORY b/HISTORY index 1d26d21d..f2944e70 100644 --- a/HISTORY +++ b/HISTORY @@ -9536,7 +9536,7 @@ Video Disk Recorder Revision History cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this (thanks to Helmut Binder). -2020-12-13: +2020-12-16: - Fixed multiple recording entries in case a recording is started during the initial reading of the video directory (reported by Claus Muus). @@ -9556,3 +9556,4 @@ Video Disk Recorder Revision History - Avoiding a lengthy lock on the Channels list when starting a recording (thanks to Helmut Binder). - Fixed error handling when loading a plugin (reported by Markus Ehrnsperger). +- Improved handling missing VDRPluginDestroyer() (thanks to Winfried Köhler). diff --git a/plugin.c b/plugin.c index cad2cd56..7c0d55c8 100644 --- a/plugin.c +++ b/plugin.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: plugin.c 4.3 2020/12/13 10:56:36 kls Exp $ + * $Id: plugin.c 4.4 2020/12/16 11:54:06 kls Exp $ */ #include "plugin.h" @@ -234,6 +234,10 @@ bool cDll::Load(bool Log) plugin = create(); destroy = (destroy_t *)dlsym(handle, "VDRPluginDestroyer"); error = dlerror(); + if (error) { + error = NULL; + isyslog("plugin %s: missing symbol VDRPluginDestroyer(), please rebuild", fileName); + } } } if (!error) {