From: Felipe Pena Date: Mon, 4 Feb 2008 18:45:40 +0000 (+0000) Subject: Fixed Bug #42057 (fwrite() writes data into file when length is given as a negative... X-Git-Tag: RELEASE_2_0_0a1~619 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aa79b70645efd25598d6ebe7f59ce7f5ad4628f4;p=php Fixed Bug #42057 (fwrite() writes data into file when length is given as a negative value) --- diff --git a/ext/standard/file.c b/ext/standard/file.c index df9f719589..c304c454f0 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -1359,22 +1359,20 @@ PHPAPI PHP_FUNCTION(fwrite) RETURN_NULL(); } - if (!write_len) { + if (write_len <= 0) { RETURN_LONG(0); } php_stream_from_zval(stream, &zstream); if (Z_TYPE_P(zstring) == IS_UNICODE) { - if (write_len >= 0) { - /* Convert code units to data points */ - int32_t write_uchars = 0; + /* Convert code units to data points */ + int32_t write_uchars = 0; - U16_FWD_N(Z_USTRVAL_P(zstring), write_uchars, Z_USTRLEN_P(zstring), write_len); - write_len = write_uchars; - } + U16_FWD_N(Z_USTRVAL_P(zstring), write_uchars, Z_USTRLEN_P(zstring), write_len); + write_len = write_uchars; - if (write_len < 0 || write_len > Z_USTRLEN_P(zstring)) { + if (write_len > Z_USTRLEN_P(zstring)) { write_len = Z_USTRLEN_P(zstring); } ret = php_stream_write_unicode(stream, Z_USTRVAL_P(zstring), write_len); @@ -1385,7 +1383,7 @@ PHPAPI PHP_FUNCTION(fwrite) } } else { convert_to_string(zstring); - if (write_len < 0 || write_len > Z_STRLEN_P(zstring)) { + if (write_len > Z_STRLEN_P(zstring)) { write_len = Z_STRLEN_P(zstring); }