Skip to content

Commit 80a4ec6

Browse files
committed
Fixed bug #79678 Build fails due to undeclared ZIP_RDONLY
1 parent fcfa451 commit 80a4ec6

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

package.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<license>PHP 3.01</license>
2929
<notes>
3030
- encode parameter is optional (PHP 8)
31+
- Fixed bug #79678 Build fails due to undeclared ZIP_RDONLY
3132
</notes>
3233
<contents>
3334
<dir name="/">
@@ -52,6 +53,7 @@
5253
<file name="bug53603.phpt" role="test"/>
5354
<file name="bug53854.phpt" role="test"/>
5455
<file name="bug53885.phpt" role="test"/>
56+
<file name="bug53885_php8.phpt" role="test"/>
5557
<file name="bug64342_0.phpt" role="test"/>
5658
<file name="bug64342_1.phpt" role="test"/>
5759
<file name="bug64342_1-mb.phpt" role="test"/>

php8/php_zip.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1456,7 +1456,11 @@ PHP_METHOD(ZipArchive, open)
14561456
"Do not accept empty files as valid zip archives any longer" */
14571457

14581458
/* open for write without option to empty the archive */
1459+
#ifdef ZIP_RDONLY
14591460
if ((flags & (ZIP_TRUNCATE | ZIP_RDONLY)) == 0) {
1461+
#else
1462+
if ((flags & ZIP_TRUNCATE) == 0) {
1463+
#endif
14601464
zend_stat_t st;
14611465

14621466
/* exists and is empty */

tests/bug53885.phpt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ Bug #53885 (ZipArchive segfault with FL_UNCHANGED on empty archive)
33
--SKIPIF--
44
<?php
55
if(!extension_loaded('zip')) die('skip');
6+
if (PHP_VERSION_ID >= 80000) die('skip only for PHP < 8');
67
?>
78
--FILE--
89
<?php
910
$fname = dirname(__FILE__)."/test53885.zip";
1011
if(file_exists($fname)) unlink($fname);
1112
touch($fname);
1213
$nx=new ZipArchive();
13-
@$nx->open($fname);
14+
$nx->open($fname);
1415
$nx->locateName("a",ZIPARCHIVE::FL_UNCHANGED);
1516
$nx->statName("a",ZIPARCHIVE::FL_UNCHANGED);
1617
?>

tests/bug53885_php8.phpt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
--TEST--
2+
Bug #53885 (ZipArchive segfault with FL_UNCHANGED on empty archive)
3+
--SKIPIF--
4+
<?php
5+
if(!extension_loaded('zip')) die('skip');
6+
if (PHP_VERSION_ID < 80000) die('skip only for PHP 8');
7+
?>
8+
--FILE--
9+
<?php
10+
$fname = __DIR__."/test53885.zip";
11+
if(file_exists($fname)) unlink($fname);
12+
touch($fname);
13+
$nx=new ZipArchive();
14+
$nx->open($fname);
15+
$nx->locateName("a",ZIPARCHIVE::FL_UNCHANGED);
16+
$nx->statName("a",ZIPARCHIVE::FL_UNCHANGED);
17+
?>
18+
==DONE==
19+
--CLEAN--
20+
<?php
21+
$fname = __DIR__."/test53885.zip";
22+
unlink($fname);
23+
?>
24+
--EXPECTF--
25+
Deprecated: ZipArchive::open(): Using empty file as ZipArchive is deprecated in %s
26+
==DONE==

0 commit comments

Comments
 (0)