Commit 0c1a86426f3 for php

commit 0c1a86426f3636cd21206dbb919df36ae7b295cb
Author: Daniel Scherzer <daniel.e.scherzer@gmail.com>
Date:   Sat Aug 8 13:07:37 2026 -0700

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

diff --git a/ext/standard/mail.c b/ext/standard/mail.c
index 6d85d06d1f6..346ed940d8d 100644
--- a/ext/standard/mail.c
+++ b/ext/standard/mail.c
@@ -131,7 +131,7 @@ static void php_mail_build_headers_elem(smart_str *s, const zend_string *key, zv
 	switch(Z_TYPE_P(val)) {
 		case IS_STRING:
 			if (php_mail_build_headers_check_field_name(key) != SUCCESS) {
-				zend_value_error("Header name \"%s\" contains invalid characters", ZSTR_VAL(key));
+				zend_value_error("Header name \"%pS\" contains invalid characters", key);
 				return;
 			}

@@ -141,20 +141,20 @@ static void php_mail_build_headers_elem(smart_str *s, const zend_string *key, zv
 				case NO_HEADER_ERROR:
 					break;
 				case CONTAINS_LF_ONLY:
-					zend_value_error("Header \"%s\" contains LF character that is not allowed in the header", ZSTR_VAL(key));
+					zend_value_error("Header \"%pS\" contains LF character that is not allowed in the header", key);
 					return;
 				case CONTAINS_CR_ONLY:
-					zend_value_error("Header \"%s\" contains CR character that is not allowed in the header", ZSTR_VAL(key));
+					zend_value_error("Header \"%pS\" contains CR character that is not allowed in the header", key);
 					return;
 				case CONTAINS_CRLF:
-					zend_value_error("Header \"%s\" contains CRLF characters that are used as a line separator and are not allowed in the header", ZSTR_VAL(key));
+					zend_value_error("Header \"%pS\" contains CRLF characters that are used as a line separator and are not allowed in the header", key);
 					return;
 				case CONTAINS_NULL:
-					zend_value_error("Header \"%s\" contains NULL character that is not allowed in the header", ZSTR_VAL(key));
+					zend_value_error("Header \"%pS\" contains NULL character that is not allowed in the header", key);
 					return;
 				default:
 					// fallback
-					zend_value_error("Header \"%s\" has invalid format, or contains invalid characters", ZSTR_VAL(key));
+					zend_value_error("Header \"%pS\" has invalid format, or contains invalid characters", key);
 					return;
 			}
 			smart_str_append(s, key);
@@ -166,7 +166,7 @@ static void php_mail_build_headers_elem(smart_str *s, const zend_string *key, zv
 			php_mail_build_headers_elems(s, key, val);
 			break;
 		default:
-			zend_type_error("Header \"%s\" must be of type array|string, %s given", ZSTR_VAL(key), zend_zval_value_name(val));
+			zend_type_error("Header \"%pS\" must be of type array|string, %s given", key, zend_zval_value_name(val));
 	}
 }

@@ -178,12 +178,12 @@ static void php_mail_build_headers_elems(smart_str *s, const zend_string *key, z

 	ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(val), tmp_key, tmp_val) {
 		if (tmp_key) {
-			zend_type_error("Header \"%s\" must only contain numeric keys, \"%s\" found", ZSTR_VAL(key), ZSTR_VAL(tmp_key));
+			zend_type_error("Header \"%pS\" must only contain numeric keys, \"%pS\" found", key, tmp_key);
 			break;
 		}
 		ZVAL_DEREF(tmp_val);
 		if (Z_TYPE_P(tmp_val) != IS_STRING) {
-			zend_type_error("Header \"%s\" must only contain values of type string, %s found", ZSTR_VAL(key), zend_zval_value_name(tmp_val));
+			zend_type_error("Header \"%pS\" must only contain values of type string, %s found", key, zend_zval_value_name(tmp_val));
 			break;
 		}
 		php_mail_build_headers_elem(s, key, tmp_val);
@@ -201,7 +201,7 @@ do { \
 		} \
 		php_mail_build_headers_elems(&s, key, val); \
 	} else { \
-		zend_type_error("Header \"%s\" must be of type array|string, %s given", ZSTR_VAL(key), zend_zval_value_name(val)); \
+		zend_type_error("Header \"%pS\" must be of type array|string, %s given", key, zend_zval_value_name(val)); \
 	} \
 } while(0)

diff --git a/ext/standard/tests/mail/mail_basic7.phpt b/ext/standard/tests/mail/mail_basic7.phpt
index 6663acdfa77..e97b95c37e6 100644
--- a/ext/standard/tests/mail/mail_basic7.phpt
+++ b/ext/standard/tests/mail/mail_basic7.phpt
@@ -207,7 +207,7 @@
 }

 ?>
---EXPECT--
+--EXPECTF--
 *** Testing mail() : basic functionality ***


@@ -250,8 +250,8 @@
 ************* TEST ******************
 ValueError: Header name "*:foo1" contains invalid characters
 ValueError: Header name "foo2:::" contains invalid characters
-ValueError: Header name "" contains invalid characters
-ValueError: Header name "foo7" contains invalid characters
+ValueError: Header name "%0foo6" contains invalid characters
+ValueError: Header name "foo7%0" contains invalid characters
 bool(true)
 To: user@example.com
 Subject: Test Subject