Fixed reallocating memory in the "pictures" plugin

This commit is contained in:
Klaus Schmidinger
2011-02-20 17:19:54 +01:00
parent 698ffdc970
commit e85852672f
5 changed files with 19 additions and 5 deletions

View File

@@ -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).

View File

@@ -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 <getopt.h>
@@ -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");

View File

@@ -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;
}