Browse Source

improve overflow checks

PHP-5.3.15
Stanislav Malyshev 14 years ago
parent
commit
fc74503792
  1. 10
      main/streams/streams.c

10
main/streams/streams.c

@ -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);

Loading…
Cancel
Save