Commit 8b933637580 for php

commit 8b9336375801fb86e3ad1a0a6ef1f431f26bdb62
Author: Daniel Scherzer <daniel.e.scherzer@gmail.com>
Date:   Sat Aug 8 12:58:42 2026 -0700

    [`%pS` migration] Use `%pS` in ext/standard/head.c

    In addition to the fixes within the head.c file, support for error strings with
    null bytes was added to `zend_value_error()`.

diff --git a/Zend/zend.c b/Zend/zend.c
index e9ec8e0e61f..ad08fe1a630 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -1900,12 +1900,11 @@ ZEND_API ZEND_COLD void zend_argument_count_error(const char *format, ...) /* {{
 ZEND_API ZEND_COLD void zend_value_error(const char *format, ...) /* {{{ */
 {
 	va_list va;
-	char *message = NULL;

 	va_start(va, format);
-	zend_vspprintf(&message, 0, format, va);
-	zend_throw_exception(zend_ce_value_error, message, 0);
-	efree(message);
+	zend_string *message = zend_vstrpprintf(0, format, va);
+	zend_throw_exception_ex(zend_ce_value_error, 0, "%pS", message);
+	zend_string_release(message);
 	va_end(va);
 } /* }}} */

diff --git a/ext/standard/head.c b/ext/standard/head.c
index ba97a215427..2d7197488a8 100644
--- a/ext/standard/head.c
+++ b/ext/standard/head.c
@@ -247,7 +247,7 @@ static zend_result php_head_parse_cookie_options_array(HashTable *options, zend_
 		} else if (zend_string_equals_literal_ci(key, "partitioned")) {
 			*partitioned = zend_is_true(value);
 		} else {
-			zend_value_error("%s(): option \"%s\" is invalid", get_active_function_name(), ZSTR_VAL(key));
+			zend_value_error("%s(): option \"%pS\" is invalid", get_active_function_name(), key);
 			return FAILURE;
 		}
 	} ZEND_HASH_FOREACH_END();
diff --git a/ext/standard/tests/file/fscanf_error.phpt b/ext/standard/tests/file/fscanf_error.phpt
index fe30b36b4a5..cd88f576f64 100644
--- a/ext/standard/tests/file/fscanf_error.phpt
+++ b/ext/standard/tests/file/fscanf_error.phpt
@@ -55,14 +55,14 @@
 $filename = "$file_path/fscanf_error.tmp";
 unlink($filename);
 ?>
---EXPECT--
+--EXPECTF--
 *** Testing fscanf() for error conditions ***
 TypeError: fscanf(): supplied resource is not a valid File-Handle resource
 ValueError: Different numbers of variable names and field specifiers
 array(0) {
 }
-ValueError: Bad scan conversion character "
-ValueError: Bad scan conversion character "
+ValueError: Bad scan conversion character "%0"
+ValueError: Bad scan conversion character "%0"
 ValueError: Bad scan conversion character "."
 ValueError: Bad scan conversion character "m"