From 6b86b0708c9d6c9d69eabfaf9dbc6f5bbc364eeb Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Sat, 8 Aug 2026 16:56:48 -0700 Subject: [PATCH 1/3] [`%pS` migration] Use `%pS` in ext/mbstring --- ext/mbstring/mbstring.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index eb05a0986770..31c8bf16ec84 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -242,7 +242,7 @@ static const mbfl_encoding *php_mb_get_encoding(zend_string *encoding_name, uint encoding = mbfl_name2encoding(ZSTR_VAL(encoding_name)); if (!encoding) { - zend_argument_value_error(arg_num, "must be a valid encoding, \"%s\" given", ZSTR_VAL(encoding_name)); + zend_argument_value_error(arg_num, "must be a valid encoding, \"%pS\" given", encoding_name); return NULL; } else if (encoding->no_encoding <= mbfl_no_encoding_qprint) { if (encoding == &mbfl_encoding_base64) { @@ -408,7 +408,7 @@ static zend_result php_mb_parse_encoding_array(HashTable *target_hash, const mbf *entry++ = encoding; n++; } else { - zend_argument_value_error(arg_num, "contains invalid encoding \"%s\"", ZSTR_VAL(encoding_str)); + zend_argument_value_error(arg_num, "contains invalid encoding \"%pS\"", encoding_str); zend_tmp_string_release(tmp_encoding_str); efree(ZEND_VOIDP(list)); return FAILURE; @@ -1224,7 +1224,7 @@ PHP_FUNCTION(mb_language) } else { zend_string *ini_name = ZSTR_INIT_LITERAL("mbstring.language", false); if (FAILURE == zend_alter_ini_entry(ini_name, name, PHP_INI_USER, PHP_INI_STAGE_RUNTIME)) { - zend_argument_value_error(1, "must be a valid language, \"%s\" given", ZSTR_VAL(name)); + zend_argument_value_error(1, "must be a valid language, \"%pS\" given", name); zend_string_release_ex(ini_name, false); RETURN_THROWS(); } @@ -4715,7 +4715,7 @@ PHP_FUNCTION(mb_send_mail) break; default: - php_error_docref(NULL, E_WARNING, "Unsupported transfer encoding \"%s\" - will be regarded as 8bit", Z_STRVAL_P(s)); + php_error_docref(NULL, E_WARNING, "Unsupported transfer encoding \"%pS\" - will be regarded as 8bit", Z_STR_P(s)); body_enc = &mbfl_encoding_8bit; break; } @@ -6661,7 +6661,7 @@ PHP_FUNCTION(mb_encode_mimeheader) if (!charset) { RETURN_THROWS(); } else if (charset->mime_name == NULL || charset->mime_name[0] == '\0' || charset == &mbfl_encoding_qprint) { - zend_argument_value_error(2, "\"%s\" cannot be used for MIME header encoding", ZSTR_VAL(charset_name)); + zend_argument_value_error(2, "\"%pS\" cannot be used for MIME header encoding", charset_name); RETURN_THROWS(); } } else { From b826e4302181cfbe83187d2e0e3702e69f275053 Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Sun, 1 Nov 2026 13:40:13 -0800 Subject: [PATCH 2/3] Update test --- ext/mbstring/tests/bug79149.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/mbstring/tests/bug79149.phpt b/ext/mbstring/tests/bug79149.phpt index 4c0225bc22e4..1a48b5e17a5d 100644 --- a/ext/mbstring/tests/bug79149.phpt +++ b/ext/mbstring/tests/bug79149.phpt @@ -26,4 +26,4 @@ ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid Warning: Array to string conversion in %s on line %d ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "Array" -ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "foo" +ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "foo bar" From 233cea24d713fd0fa70d49e32e449e7c929296fb Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Sun, 1 Nov 2026 14:24:26 -0800 Subject: [PATCH 3/3] Null placeholder --- ext/mbstring/tests/bug79149.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/mbstring/tests/bug79149.phpt b/ext/mbstring/tests/bug79149.phpt index 1a48b5e17a5d..1d3538199374 100644 --- a/ext/mbstring/tests/bug79149.phpt +++ b/ext/mbstring/tests/bug79149.phpt @@ -26,4 +26,4 @@ ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid Warning: Array to string conversion in %s on line %d ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "Array" -ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "foo bar" +ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "foo%0bar"