Commit: 29ac511b8afabaee27133bb3582142a49154eab5 Author: Anatol Belski <a...@php.net> Wed, 10 Jul 2013 13:00:47 +0200 Parents: c7ee677f2f330bbcc8721b6a84dd3a05dc0c5541 Branches: PHP-5.4 PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=29ac511b8afabaee27133bb3582142a49154eab5 Log: fix possible resource leak and make sure there's something to qsort() Changed paths: M main/streams/streams.c Diff: diff --git a/main/streams/streams.c b/main/streams/streams.c index cb80e9a..a835c25 100644 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -2358,6 +2358,7 @@ PHPAPI int _php_stream_scandir(char *dirname, char **namelist[], int flags, php_ } 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 **namelist[], int flags, php_ 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 **namelist[], int flags, php_ *namelist = vector; - if (compare) { + if (nfiles > 0 && compare) { qsort(*namelist, nfiles, sizeof(char *), (int(*)(const void *, const void *))compare); } return nfiles; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php