wez             Tue Oct 15 12:01:02 2002 EDT

  Modified files:              
    /php4/ext/zlib      zlib_fopen_wrapper.c 
  Log:
  Fix for 19906.
  gzeof has different semantics from feof, in that gzeof will return true
  if the read position is at EOF, even if the most recent read was 100%
  successful.
  feof will return true only (usually) if the most recent fread failed.
  
  
Index: php4/ext/zlib/zlib_fopen_wrapper.c
diff -u php4/ext/zlib/zlib_fopen_wrapper.c:1.32 php4/ext/zlib/zlib_fopen_wrapper.c:1.33
--- php4/ext/zlib/zlib_fopen_wrapper.c:1.32     Mon Oct 14 22:27:15 2002
+++ php4/ext/zlib/zlib_fopen_wrapper.c  Tue Oct 15 12:01:00 2002
@@ -16,7 +16,7 @@
    |         Hartmut Holzgraefe <[EMAIL PROTECTED]>                          |
    +----------------------------------------------------------------------+
  */
-/* $Id: zlib_fopen_wrapper.c,v 1.32 2002/10/15 02:27:15 wez Exp $ */
+/* $Id: zlib_fopen_wrapper.c,v 1.33 2002/10/15 16:01:00 wez Exp $ */
 #define IS_EXT_MODULE
 #define _GNU_SOURCE
 
@@ -35,8 +35,8 @@
        size_t ret;
        
        ret = gzread(self->gz_file, buf, count);
-
-       if (ret == 0 && gzeof(self->gz_file))
+       
+       if (gzeof(self->gz_file))
                stream->eof = 1;
        
        return ret;
@@ -45,7 +45,7 @@
 static size_t php_gziop_write(php_stream *stream, const char *buf, size_t count 
TSRMLS_DC)
 {
        struct php_gz_stream_data_t *self = (struct php_gz_stream_data_t 
*)stream->abstract;
-       return gzwrite(self->gz_file, (char*)buf, count); 
+       return gzwrite(self->gz_file, (char*)buf, count);
 }
 
 static int php_gziop_seek(php_stream *stream, off_t offset, int whence, off_t 
*newoffs TSRMLS_DC)
@@ -66,8 +66,9 @@
        struct php_gz_stream_data_t *self = (struct php_gz_stream_data_t 
*)stream->abstract;
        int ret = EOF;
        
-       if (close_handle)
+       if (close_handle) {
                ret = gzclose(self->gz_file);
+       }
        php_stream_free(self->stream, PHP_STREAM_FREE_CLOSE | (close_handle == 0 ? 
PHP_STREAM_FREE_PRESERVE_HANDLE : 0));
        efree(self);
 



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

Reply via email to