1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed a possible memory leak in SI::StructureLoop::getNextAsPointer()

This commit is contained in:
Klaus Schmidinger 2012-10-15 12:03:31 +02:00
parent 15bb8ca60d
commit 4149053935
3 changed files with 7 additions and 2 deletions

View File

@ -2621,6 +2621,7 @@ Sundararaj Reel <sundararaj.reel@googlemail.com>
for reporting a problem with the function cString::sprintf(const char *fmt, va_list &ap), 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 that might inadvertently be called with a 'char *' as the second argument on some
compilers and cause a crash compilers and cause a crash
for reporting a possible memory leak in SI::StructureLoop::getNextAsPointer()
Ales Jurik <ajurik@quick.cz> Ales Jurik <ajurik@quick.cz>
for reporting broken SI data on Czech/Slovak channels after changing the default for reporting broken SI data on Czech/Slovak channels after changing the default

View File

@ -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, - 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 it will now be shifted towards the next I-frame (either up or down, whichever is
closer). closer).
- Fixed a possible memory leak in SI::StructureLoop::getNextAsPointer() (reported by
Sundararaj Reel).

View File

@ -6,7 +6,7 @@
* the Free Software Foundation; either version 2 of the License, or * * the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. * * (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(); T *ret=new T();
ret->setData(d); ret->setData(d);
ret->CheckParse(); ret->CheckParse();
if (!checkSize(ret->getLength())) if (!checkSize(ret->getLength())) {
delete ret;
return 0; return 0;
}
it.i+=ret->getLength(); it.i+=ret->getLength();
return ret; return ret;
} }