Commit:    fc74503792b1ee92e4b813690890f3ed38fa3ad5
Author:    Stanislav Malyshev <s...@php.net>         Fri, 8 Jun 2012 01:21:37 
-0700
Parents:   7d04e0fb2ec8be9b1c4b16a9f0b4958f853597f1
Branches:  PHP-5.3 PHP-5.4 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=fc74503792b1ee92e4b813690890f3ed38fa3ad5

Log:
improve overflow checks

Changed paths:
  M  main/streams/streams.c


Diff:
diff --git a/main/streams/streams.c b/main/streams/streams.c
index 43cb010..dfd6094 100755
--- a/main/streams/streams.c
+++ b/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);


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to