]> granicus.if.org Git - php/commitdiff
fix for deleted files when read from, generalize refcount1 test better
authorGreg Beaver <cellog@php.net>
Tue, 16 Jan 2007 03:41:52 +0000 (03:41 +0000)
committerGreg Beaver <cellog@php.net>
Tue, 16 Jan 2007 03:41:52 +0000 (03:41 +0000)
ext/phar/phar.c
ext/phar/tests/refcount1.phpt

index 8ed743bb2d3dd585b9cfd670feb5a40277b6f8be..c617cfc719044c7d5a002cba43ac212199372341 100644 (file)
@@ -1597,8 +1597,13 @@ static int phar_dir_seek(php_stream *stream, off_t offset, int whence, off_t *ne
 static size_t phar_stream_read(php_stream *stream, char *buf, size_t count TSRMLS_DC) /* {{{ */
 {
        phar_entry_data *data = (phar_entry_data *)stream->abstract;
-
-       size_t got = php_stream_read(data->fp, buf, count);
+       size_t got;
+       
+       if (data->internal_file->is_deleted) {
+               stream->eof = 1;
+               return 0;
+       }
+       got = php_stream_read(data->fp, buf, count);
        
        if (data->fp->eof) {
                stream->eof = 1;
index bafdc86956d2bd98a428d7cabe0e08ef3e68592b..ef5c1f3da91475c64faf9077e0fca0d71d1042b3 100644 (file)
@@ -39,5 +39,7 @@ include $pname . '/b/c.php';
 extra
 extra
 
-Warning: include(): Failed opening 'phar://%s/b/c.php): for inclusion (include_path='%s') in %s on line 27
+Warning: include(phar:///home/cellog/workspace/pecl/phar/tests/refcount1.phpt.phar.php/b/c.php): failed to open stream: phar error: "b/c.php" is not a file in phar "/home/cellog/workspace/pecl/phar/tests/refcount1.phpt.phar.php" in /home/cellog/workspace/pecl/phar/tests/refcount1.phpt on line %d
+
+Warning: include(): Failed opening 'phar:///home/cellog/workspace/pecl/phar/tests/refcount1.phpt.phar.php/b/c.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/cellog/workspace/pecl/phar/tests/refcount1.phpt on line %d
 ===DONE===