[php-src] Issue #13836: Member access within null pointer of type 'phar_entry_info' (aka 'struct _phar_entry_info') in /ext/phar/stream.c
| From: | YuanchengJiang | Date: | Fri, 29 Mar 2024 12:33:39 +0000 |
| Subject: | [php-src] Issue #13836: Member access within null pointer of type 'phar_entry_info' (aka 'struct _phar_entry_info') in /ext/phar/stream.c | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-246672@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/13836
Author: YuanchengJiang
### Description
This case (https://github.com/php/php-src/blob/master/ext/phar/tests/bug47085.phpt) failed in the
latest commit, not seen before.
```
--TEST--
Phar: PHP bug #47085: "rename() returns true even if the file in PHAR does not exist"
--EXTENSIONS--
phar
--INI--
phar.require_hash=0
phar.readonly=0
--FILE--
<?php
$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar';
$phar = new Phar($fname, 0, 'a.phar');
$phar['x'] = 'hi';
unset($phar);
rename("phar://a.phar/x", "phar://a.phar/y");
var_dump(rename("phar://a.phar/x", "phar://a.phar/y"));
?>
--CLEAN--
<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') .
'.phar');?>
--EXPECTF--
Warning: rename(): phar error: cannot rename "phar://a.phar/x" to
"phar://a.phar/y" from extracted phar archive, source does not exist in %sbug47085.php on
line %d
bool(false)
```
Output:
```
/php-src/ext/phar/stream.c:864:10: runtime error: member access within null pointer of type
'phar_entry_info' (aka 'struct _phar_entry_info')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /php-src/ext/phar/stream.c:864:10 in
```
### PHP Version
PHP 8.4.0-dev
### Operating System
ubuntu 22.04