From: Ilia Alshanetsky Date: Fri, 19 May 2006 02:51:00 +0000 (+0000) Subject: Fixed bug #37505 (touch() truncates large files). X-Git-Tag: php-5.2.0RC1~514 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95875d996661369faa2647846c8168fed625a961;p=php Fixed bug #37505 (touch() truncates large files). --- diff --git a/NEWS b/NEWS index 7de2226562..c072888ff7 100644 --- a/NEWS +++ b/NEWS @@ -41,6 +41,7 @@ PHP NEWS - Added RFC2397 (data: stream) support. (Marcus) - Fixed bug #37510 (session_regenerate_id changes session_id() even on failure). (Hannes) +- Fixed bug #37505 (touch() truncates large files). (Ilia) - Fixed bug #37487 (oci_fetch_array() array-type should always default to OCI_BOTH). (Tony) - Fixed bug #37395 (recursive mkdir() fails to create nonexistent directories diff --git a/ext/standard/filestat.c b/ext/standard/filestat.c index 8d40561c51..d19a29f67c 100644 --- a/ext/standard/filestat.c +++ b/ext/standard/filestat.c @@ -538,7 +538,6 @@ PHP_FUNCTION(touch) { zval **filename, **filetime, **fileatime; int ret; - struct stat sb; FILE *file; struct utimbuf newtimebuf; struct utimbuf *newtime = NULL; @@ -575,8 +574,7 @@ PHP_FUNCTION(touch) } /* create the file if it doesn't exist already */ - ret = VCWD_STAT(Z_STRVAL_PP(filename), &sb); - if (ret == -1) { + if (VCWD_ACCESS(Z_STRVAL_PP(filename), F_OK) != 0) { file = VCWD_FOPEN(Z_STRVAL_PP(filename), "w"); if (file == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to create file %s because %s", Z_STRVAL_PP(filename), strerror(errno));