From 41490539357a764d5e4aaca0a84e5800d9ef4da9 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Mon, 15 Oct 2012 12:03:31 +0200 Subject: [PATCH] Fixed a possible memory leak in SI::StructureLoop::getNextAsPointer() --- CONTRIBUTORS | 1 + HISTORY | 2 ++ libsi/si.h | 6 ++++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 841d4a1e..4139f32c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2621,6 +2621,7 @@ Sundararaj Reel for reporting a problem with the function cString::sprintf(const char *fmt, va_list &ap), that might inadvertently be called with a 'char *' as the second argument on some compilers and cause a crash + for reporting a possible memory leak in SI::StructureLoop::getNextAsPointer() Ales Jurik for reporting broken SI data on Czech/Slovak channels after changing the default diff --git a/HISTORY b/HISTORY index 2f6a560c..ee29436f 100644 --- a/HISTORY +++ b/HISTORY @@ -7301,3 +7301,5 @@ Video Disk Recorder Revision History - If a frame position in the 'marks' file of a recording doesn't point to an I-frame, it will now be shifted towards the next I-frame (either up or down, whichever is closer). +- Fixed a possible memory leak in SI::StructureLoop::getNextAsPointer() (reported by + Sundararaj Reel). diff --git a/libsi/si.h b/libsi/si.h index 4dccdd80..8e4255e3 100644 --- a/libsi/si.h +++ b/libsi/si.h @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: si.h 2.5 2012/01/11 11:35:17 kls Exp $ + * $Id: si.h 2.6 2012/10/15 11:56:06 kls Exp $ * * ***************************************************************************/ @@ -347,8 +347,10 @@ public: T *ret=new T(); ret->setData(d); ret->CheckParse(); - if (!checkSize(ret->getLength())) + if (!checkSize(ret->getLength())) { + delete ret; return 0; + } it.i+=ret->getLength(); return ret; }