|
|
|
@ -2279,6 +2279,11 @@ PHPAPI int _php_stream_scandir(char *dirname, char **namelist[], int flags, php_ |
|
|
|
if (vector_size == 0) { |
|
|
|
vector_size = 10; |
|
|
|
} else { |
|
|
|
if(vector_size*2 < vector_size) { |
|
|
|
/* overflow */ |
|
|
|
efree(vector); |
|
|
|
return FAILURE; |
|
|
|
} |
|
|
|
vector_size *= 2; |
|
|
|
} |
|
|
|
vector = (char **) safe_erealloc(vector, vector_size, sizeof(char *), 0); |
|
|
|
@ -2287,11 +2292,6 @@ PHPAPI int _php_stream_scandir(char *dirname, char **namelist[], int flags, php_ |
|
|
|
vector[nfiles] = estrdup(sdp.d_name); |
|
|
|
|
|
|
|
nfiles++; |
|
|
|
if(vector_size < 10 || nfiles == 0) { |
|
|
|
/* overflow */ |
|
|
|
efree(vector); |
|
|
|
return FAILURE; |
|
|
|
} |
|
|
|
} |
|
|
|
php_stream_closedir(stream); |
|
|
|
|
|
|
|
|