--- embedaddon/php/main/streams/streams.c 2013/07/22 01:32:11 1.1.1.3 +++ embedaddon/php/main/streams/streams.c 2013/10/14 08:02:43 1.1.1.4 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.1.1.3 2013/07/22 01:32:11 misho Exp $ */ +/* $Id: streams.c,v 1.1.1.4 2013/10/14 08:02:43 misho Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -2358,6 +2358,7 @@ PHPAPI int _php_stream_scandir(char *dirname, char **n } else { if(vector_size*2 < vector_size) { /* overflow */ + php_stream_closedir(stream); efree(vector); return FAILURE; } @@ -2371,6 +2372,7 @@ PHPAPI int _php_stream_scandir(char *dirname, char **n nfiles++; if(vector_size < 10 || nfiles == 0) { /* overflow */ + php_stream_closedir(stream); efree(vector); return FAILURE; } @@ -2379,7 +2381,7 @@ PHPAPI int _php_stream_scandir(char *dirname, char **n *namelist = vector; - if (compare) { + if (nfiles > 0 && compare) { qsort(*namelist, nfiles, sizeof(char *), (int(*)(const void *, const void *))compare); } return nfiles;