. Fixed bug #79112 (IMAP extension can't find OpenSSL libraries at configure
time). (Nikita)
+- MBString:
+ . Fixed bug #79149 (SEGV in mb_convert_encoding with non-string encodings).
+ (cmb)
+
- MySQLnd:
. Fixed bug #79084 (mysqlnd may fetch wrong column indexes with MYSQLI_BOTH).
(cmb)
if ( _from_encodings) {
l = strlen(_from_encodings);
- n = strlen(Z_STRVAL_P(hash_entry));
+ n = strlen(ZSTR_VAL(encoding_str));
_from_encodings = erealloc(_from_encodings, l+n+2);
memcpy(_from_encodings + l, ",", 1);
- memcpy(_from_encodings + l + 1, Z_STRVAL_P(hash_entry), Z_STRLEN_P(hash_entry) + 1);
+ memcpy(_from_encodings + l + 1, ZSTR_VAL(encoding_str), ZSTR_LEN(encoding_str) + 1);
} else {
- _from_encodings = estrdup(Z_STRVAL_P(hash_entry));
+ _from_encodings = estrdup(ZSTR_VAL(encoding_str));
}
zend_string_release(encoding_str);
} ZEND_HASH_FOREACH_END();
--- /dev/null
+--TEST--
+Bug #79149 (SEGV in mb_convert_encoding with non-string encodings)
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
+?>
+--FILE--
+<?php
+var_dump(mb_convert_encoding("", "UTF-8", [0]));
+var_dump(mb_convert_encoding('foo', 'UTF-8', array(['bar'], ['baz'])));
+?>
+--EXPECTF--
+Warning: mb_convert_encoding(): Illegal character encoding specified in %s on line %d
+string(0) ""
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Warning: mb_convert_encoding(): Illegal character encoding specified in %s on line %d
+string(3) "foo"