1--TEST--
2GHSA-jqcx-ccgc-xwhv (Buffer overflow and overread in phar_dir_read())
3--SKIPIF--
4<?php if (!extension_loaded("phar")) die("skip"); ?>
5--INI--
6phar.readonly=0
7--FILE--
8<?php
9$phar = new Phar(__DIR__. '/GHSA-jqcx-ccgc-xwhv.phar');
10$phar->startBuffering();
11$phar->addFromString(str_repeat('A', PHP_MAXPATHLEN - 1), 'This is the content of file 1.');
12$phar->addFromString(str_repeat('B', PHP_MAXPATHLEN - 1).'C', 'This is the content of file 2.');
13$phar->stopBuffering();
14
15$handle = opendir('phar://' . __DIR__ . '/GHSA-jqcx-ccgc-xwhv.phar');
16var_dump(strlen(readdir($handle)));
17// Must not be a string of length PHP_MAXPATHLEN+1
18var_dump(readdir($handle));
19closedir($handle);
20?>
21--CLEAN--
22<?php
23unlink(__DIR__. '/GHSA-jqcx-ccgc-xwhv.phar');
24?>
25--EXPECTF--
26int(%d)
27bool(false)
28