[php-src] PR #24120: Replace php_stream_wrapper.is_url with flags and resolve nested wrappers
| From: | bukka | Date: | Sun, 04 Oct 2026 16:55:19 +0000 |
| Subject: | [php-src] PR #24120: Replace php_stream_wrapper.is_url with flags and resolve nested wrappers | ||
| Groups: | php.git-pulls | ||
| Request: | Send a blank email to git-pulls+get-39136@lists.php.net to get a copy of this message | ||
Pull Request: https://github.com/php/php-src/pull/24120
Author: bukka
The compress.zlib:// and compress.bzip2:// wrappers open the path that follows their scheme through
the stream layer, so whether such a stream is local depends on the inner wrapper. stream_is_local()
and the openssl cafile check treated them as always local.
Replace the is_url field with a flags field. PHP_STREAM_WRAPPER_FLAG_URL keeps the value 1 so
existing initializers are unchanged, and the new PHP_STREAM_WRAPPER_FLAG_NESTED marks wrappers that
open the remainder of the path. php_stream_wrapper_is_url() walks nested schemes in a loop for path
strings, and PHP_STREAM_FLAG_URL is set on opened streams, copied from the inner stream by nested
wrappers, so php_stream_is_url() needs no lookup. The open path and the allow_url_fopen enforcement
at the inner open are unchanged.