]> granicus.if.org Git - php/commitdiff
fix signed/unsigned mismatch
authorAnatol Belski <ab@php.net>
Tue, 16 Sep 2014 18:44:45 +0000 (20:44 +0200)
committerAnatol Belski <ab@php.net>
Tue, 16 Sep 2014 19:17:25 +0000 (21:17 +0200)
ext/spl/spl_directory.c

index 0694e8f3351a4b2e8c6fac2c846da1e2e9c84eda..293be0b0dd4ad3799bcd8069b08f1c24e818377f 100644 (file)
@@ -2883,7 +2883,12 @@ SPL_METHOD(SplFileObject, fwrite)
        }
 
        if (ZEND_NUM_ARGS() > 1) {
-               str_len = MAX(0, MIN(length, str_len));
+               if (length >= 0) {
+                       str_len = MAX(0, MIN((size_t)length, str_len));
+               } else {
+                       /* Negative length given, nothing to write */
+                       str_len = 0;
+               }
        }
        if (!str_len) {
                RETURN_LONG(0);