From e85852672fdc218356e8a8565ba42ed85bed5fb4 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 20 Feb 2011 17:19:54 +0100 Subject: [PATCH] Fixed reallocating memory in the "pictures" plugin --- CONTRIBUTORS | 1 + HISTORY | 2 ++ PLUGINS/src/pictures/HISTORY | 4 ++++ PLUGINS/src/pictures/pictures.c | 4 ++-- PLUGINS/src/pictures/player.c | 13 ++++++++++--- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 54c1eafe..88f60ce2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2614,6 +2614,7 @@ Eric Valette Paul Menzel for making include paths not be overwritten in the Makefile for adding LDFLAGS to the linker calls in the Makefiles + for reporting a possible memory leak in the "pictures" plugin Radek Stastny for translating OSD texts to the Czech language diff --git a/HISTORY b/HISTORY index 2246d570..db7ae384 100644 --- a/HISTORY +++ b/HISTORY @@ -6535,3 +6535,5 @@ Video Disk Recorder Revision History implementation of the AlphaBlend() function. - Updated the Slovakian language texts (thanks to Milan Hrala). - Added Serbian language texts (thanks to Milan Cvijanovic). +- Fixed reallocating memory in the "pictures" plugin (reported by Paul Menzel, with + input from Oliver Endriss). diff --git a/PLUGINS/src/pictures/HISTORY b/PLUGINS/src/pictures/HISTORY index d90f3c59..57290bc5 100644 --- a/PLUGINS/src/pictures/HISTORY +++ b/PLUGINS/src/pictures/HISTORY @@ -41,3 +41,7 @@ VDR Plugin 'pictures' Revision History 2010-02-28: Version 0.0.9 - Added Lithuanian language translations (thanks to Valdemaras Pipiras). + +2011-02-20: Version 0.1.0 + +- Fixed reallocating memory (reported by Paul Menzel). diff --git a/PLUGINS/src/pictures/pictures.c b/PLUGINS/src/pictures/pictures.c index 6897e239..8a890b1c 100644 --- a/PLUGINS/src/pictures/pictures.c +++ b/PLUGINS/src/pictures/pictures.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: pictures.c 2.2 2010/02/28 12:49:55 kls Exp $ + * $Id: pictures.c 2.3 2011/02/20 16:50:01 kls Exp $ */ #include @@ -11,7 +11,7 @@ #include "menu.h" #include "player.h" -static const char *VERSION = "0.0.9"; +static const char *VERSION = "0.1.0"; static const char *DESCRIPTION = trNOOP("A simple picture viewer"); static const char *MAINMENUENTRY = trNOOP("Pictures"); diff --git a/PLUGINS/src/pictures/player.c b/PLUGINS/src/pictures/player.c index 8981b600..4b289ac9 100644 --- a/PLUGINS/src/pictures/player.c +++ b/PLUGINS/src/pictures/player.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: player.c 1.3 2008/02/09 12:13:10 kls Exp $ + * $Id: player.c 2.1 2011/02/20 17:15:25 kls Exp $ */ #include "player.h" @@ -66,8 +66,15 @@ void cPicturePlayer::SetPicture(const char *FileName) length = read(f, buffer, size); if (length > 0) { if (length >= size) { - size = size * 3 / 2; - buffer = (uchar *)realloc(buffer, size); + int NewSize = size * 3 / 2; + if (uchar *NewBuffer = (uchar *)realloc(buffer, NewSize)) { + buffer = NewBuffer; + size = NewSize; + } + else { + LOG_ERROR_STR("out of memory"); + break; + } lseek(f, 0, SEEK_SET); continue; }