From 3e0659a10aec259f7e298ce2f577d900b2c3eb41 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 1 Dec 2006 13:35:41 +0100 Subject: Fixed a possible segfault in cSkins::Message() --- CONTRIBUTORS | 1 + HISTORY | 3 ++- config.h | 4 ++-- skins.c | 7 +++++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index c6ca7591..322773ab 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1474,6 +1474,7 @@ Udo Richter for reporting that an assignment in svdrp.c didn't use the cTimer::operator=()) for suggesting that the function cThread::Cancel() should only set 'running' to false and not actually kill the thread if the special value -1 is given + or fixing a possible segfault in cSkins::Message() Sven Kreiensen for his help in keeping 'channels.conf.terr' up to date diff --git a/HISTORY b/HISTORY index 45ec6499..eb3a4c6d 100644 --- a/HISTORY +++ b/HISTORY @@ -4986,6 +4986,7 @@ Video Disk Recorder Revision History - Fixed displaying the replay mode symbol in case of "Multi speed mode" (reported by Marco Schlüßler). -2006-11-19: Version 1.4.4-1 +2006-12-01: Version 1.4.4-1 - Some improvements to the man pages (thanks to Ville Skyttä). +- Fixed a possible segfault in cSkins::Message() (thanks to Udo Richter). diff --git a/config.h b/config.h index 3d0e2a0d..610124e2 100644 --- a/config.h +++ b/config.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.277 2006/11/04 13:19:31 kls Exp $ + * $Id: config.h 1.278 2006/12/01 13:33:26 kls Exp $ */ #ifndef __CONFIG_H @@ -21,7 +21,7 @@ // VDR's own version number: -#define VDRVERSION "1.4.4" +#define VDRVERSION "1.4.4-1" #define VDRVERSNUM 10404 // Version * 10000 + Major * 100 + Minor // The plugin API's version number: diff --git a/skins.c b/skins.c index 7a9682ed..34b26382 100644 --- a/skins.c +++ b/skins.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: skins.c 1.11 2006/06/03 14:39:14 kls Exp $ + * $Id: skins.c 1.12 2006/12/01 13:32:37 kls Exp $ */ #include "skins.h" @@ -226,8 +226,11 @@ eKeys cSkins::Message(eMessageType Type, const char *s, int Seconds) } if (!Current()) return kNone; - if (!cSkinDisplay::Current() && !displayMessage) + if (!cSkinDisplay::Current()) { + if (displayMessage) + delete displayMessage; displayMessage = Current()->DisplayMessage(); + } cSkinDisplay::Current()->SetMessage(Type, s); cSkinDisplay::Current()->Flush(); cStatus::MsgOsdStatusMessage(s); -- cgit v1.2.3