Fixed a possible stack overflow in cListBase::Sort()

This commit is contained in:
Klaus Schmidinger 2015-09-10 13:20:21 +02:00
parent 14f97d0f2a
commit 0f18bd0a6a
3 changed files with 7 additions and 2 deletions

View File

@ -714,6 +714,7 @@ Oliver Endriss <o.endriss@gmx.de>
to detect the frame type
for suggesting to ignore channels with an RID that is not 0 when checking for obsolete
channels
for fixing a possible stack overflow in cListBase::Sort()
Reinhard Walter Buchner <rw.buchner@freenet.de>
for adding some satellites to 'sources.conf'

View File

@ -8813,3 +8813,4 @@ Video Disk Recorder Revision History
to Thomas Reufer).
- Skins can now implement cSkinDisplayMenu::MenuOrientation() to display horizontal
menus (thanks to Stefan Braun).
- Fixed a possible stack overflow in cListBase::Sort() (thanks to Oliver Endriss).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: tools.c 4.3 2015/09/06 10:47:05 kls Exp $
* $Id: tools.c 4.4 2015/09/10 13:17:55 kls Exp $
*/
#include "tools.h"
@ -2253,7 +2253,9 @@ static int CompareListObjects(const void *a, const void *b)
void cListBase::Sort(void)
{
int n = Count();
cListObject *a[n];
cListObject **a = MALLOC(cListObject *, n);
if (a == NULL)
return;
cListObject *object = objects;
int i = 0;
while (object && i < n) {
@ -2267,6 +2269,7 @@ void cListBase::Sort(void)
count--;
Add(a[i]);
}
free(a);
}
// --- cHashBase -------------------------------------------------------------