summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/phar/zip.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/phar/zip.c b/ext/phar/zip.c
index a685d995da..221a806f55 100644
--- a/ext/phar/zip.c
+++ b/ext/phar/zip.c
@@ -484,6 +484,10 @@ foundit:
/* construct actual offset to file start - local extra_len can be different from central extra_len */
entry.offset = entry.offset_abs =
sizeof(local) + entry.header_offset + PHAR_GET_16(local.filename_len) + PHAR_GET_16(local.extra_len);
+#if PHP_VERSION_ID < 50207
+ /* work around Bug #46147 */
+ fp->writepos = fp->readpos = 0;
+#endif
php_stream_seek(fp, entry.offset, SEEK_SET);
mydata->alias_len = entry.uncompressed_filesize;