]> granicus.if.org Git - php/commitdiff
MFH: Fixed #45928 (large scripts from stdin are stripped at 16K border)
authorArnaud Le Blanc <lbarnaud@php.net>
Wed, 10 Sep 2008 10:28:39 +0000 (10:28 +0000)
committerArnaud Le Blanc <lbarnaud@php.net>
Wed, 10 Sep 2008 10:28:39 +0000 (10:28 +0000)
Zend/zend_stream.c

index 068b30ed87f85871965951065e80597c5cc0e8e1..a67fcdab1f394b7aea310a68999f60a8f1a35c5e 100644 (file)
@@ -49,6 +49,11 @@ static size_t zend_stream_stdio_fsizer(void *handle TSRMLS_DC) /* {{{ */
 {
        struct stat buf;
        if (handle && fstat(fileno((FILE*)handle), &buf) == 0) {
+#ifdef S_ISREG
+               if (!S_ISREG(buf.st_mode)) {
+                       return 0;
+               }
+#endif
                return buf.st_size;
        }
        return 0;
@@ -93,6 +98,11 @@ static size_t zend_stream_fsize(zend_file_handle *file_handle TSRMLS_DC) /* {{{
                return file_handle->handle.stream.fsizer(file_handle->handle.stream.handle TSRMLS_CC);
        }
        if (file_handle->handle.fp && fstat(fileno(file_handle->handle.fp), &buf) == 0) {
+#ifdef S_ISREG
+               if (!S_ISREG(buf.st_mode)) {
+                       return 0;
+               }
+#endif
                return buf.st_size;
        }