From 480afc6bc8636b10849a9e61b73151e81b794f93 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 18 Jun 2004 15:06:21 +0200 Subject: [PATCH] Fixed a memory leak in theme description handling --- CONTRIBUTORS | 1 + HISTORY | 3 ++- osd.c | 4 ++-- themes.c | 6 ++++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 33b35d35..cf0a9c2d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -720,6 +720,7 @@ Sascha Volkenandt for suggesting to allow drawing "transparent" texts for suggesting to ignore unused "none" color entries in XPM files written by some broken graphics tools + for fixing a memory leak in theme description handling Malcolm Caldwell for modifying LOF handling to allow for C-band reception diff --git a/HISTORY b/HISTORY index 74a40e9b..36761748 100644 --- a/HISTORY +++ b/HISTORY @@ -2893,7 +2893,7 @@ Video Disk Recorder Revision History strings in order to avoid buffer overflows (thanks to Philip Lawatsch for debugging a buffer overflow in eit.c). -2004-06-13: Version 1.3.11 +2004-06-18: Version 1.3.11 - In order to avoid problems on NPTL systems, VDR now checks for the presence of NPTL at program start, and if it is, exists and tells the user to do @@ -2920,3 +2920,4 @@ Video Disk Recorder Revision History Recordings.TriggerUpdate() to trigger an update of the list of recordings. If some external tool manipulates the video directory, it can touch the file '.update' in the video directory to trigger an update of the list of recordings. +- Fixed a memory leak in theme description handling (thanks to Sascha Volkenandt). diff --git a/osd.c b/osd.c index bad03f3e..d87bee3e 100644 --- a/osd.c +++ b/osd.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osd.c 1.54 2004/06/12 13:59:12 kls Exp $ + * $Id: osd.c 1.55 2004/06/15 20:29:42 kls Exp $ */ #include "osd.h" @@ -773,7 +773,7 @@ void cTextScroller::DrawText(void) { if (osd) { for (int i = 0; i < shown; i++) - osd->DrawText(left, top + i * font->Height(), textWrapper.GetLine(offset + i), colorFg, colorBg, font, width); + osd->DrawText(left, top + i * font->Height(), textWrapper.GetLine(offset + i), colorFg, colorBg, font, width); } } diff --git a/themes.c b/themes.c index 1b6adf9d..0a9b951d 100644 --- a/themes.c +++ b/themes.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: themes.c 1.2 2004/05/22 10:30:06 kls Exp $ + * $Id: themes.c 1.3 2004/06/18 15:05:07 kls Exp $ */ #include "themes.h" @@ -114,8 +114,10 @@ bool cTheme::Load(const char *FileName, bool OnlyDescriptions) char *l = strchr(n, '.'); if (l) lang = I18nLanguageIndex(++l); - if (lang >= 0) + if (lang >= 0) { + free(descriptions[lang]); descriptions[lang] = strdup(v); + } else error = "invalid language code"; }