From 38501ed48a6a8d9ad57605d6a49e796230ac4b42 Mon Sep 17 00:00:00 2001 From: Joe Cai Date: Fri, 12 Jul 2024 20:13:44 +1000 Subject: [PATCH] Fix GH-14930: Custom stream wrapper dir_readdir output truncated to 255 characters in PHP 8.3 Revert "Reserve less file space if possible in a directory entry" This reverts commit 00c1e7bf0f1c7244589ce8756f0367497cf1ce15. Closes GH-14933. --- NEWS | 4 ++++ ext/standard/tests/streams/gh14930.phpt | 27 +++++++++++++++++++++++++ main/php_streams.h | 4 ---- 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 ext/standard/tests/streams/gh14930.phpt diff --git a/NEWS b/NEWS index a7c4f1cea92..930bc318644 100644 --- a/NEWS +++ b/NEWS @@ -58,6 +58,10 @@ PHP NEWS . Fix 32-bit wordwrap test failures. (orlitzky) . Fixed bug GH-14774 (time_sleep_until overflow). (David Carlier) +- Streams: + . Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to + 255 characters in PHP 8.3). (Joe Cai) + - Tidy: . Fix memory leak in tidy_repair_file(). (nielsdos) diff --git a/ext/standard/tests/streams/gh14930.phpt b/ext/standard/tests/streams/gh14930.phpt new file mode 100644 index 00000000000..7e034a81235 --- /dev/null +++ b/ext/standard/tests/streams/gh14930.phpt @@ -0,0 +1,27 @@ +--TEST-- +GH-14930: Custom stream wrapper dir_readdir output truncated to 255 characters in PHP 8.3 +--FILE-- + +--EXPECT-- +string(288) "very-long-filename-ieNoquiaC6ijeiy9beejaiphoriejo2cheehooGou8uhoh7eh0gefahyuQuohd7eec9auso9eeFah2Maedohsemi1eetoo5fo5biePh5eephai7SiuguipouLeemequ2oope9aigoQu5efak2aLeri9ithaiJ9eew3dianaiHoo1aexaighiitee6geghiequ5nohhiikahwee8ohk2Soip2Aikeithohdeitiedeiku7DiTh2eep3deitiedeiku7DiTh2ee.txt" diff --git a/main/php_streams.h b/main/php_streams.h index 31b80de9860..33b14ff4eb3 100644 --- a/main/php_streams.h +++ b/main/php_streams.h @@ -107,11 +107,7 @@ typedef struct _php_stream_statbuf { } php_stream_statbuf; typedef struct _php_stream_dirent { -#ifdef NAME_MAX - char d_name[NAME_MAX + 1]; -#else char d_name[MAXPATHLEN]; -#endif unsigned char d_type; } php_stream_dirent;