if (copy) {
SEPARATE_ZVAL(value);
}
+
+ /* #49274, fatal error with object without a toString method
+ Fails nicely instead of getting a recovarable fatal error. */
+ if (Z_TYPE_PP(value) == IS_OBJECT) {
+ zend_class_entry *ce;
+
+ ce = Z_OBJCE_PP(value);
+ if (!ce->__tostring) {
+ ZVAL_FALSE(*value);
+ return;
+ }
+ }
+
/* Here be strings */
convert_to_string(*value);
--- /dev/null
+--TEST--\r
+#49274, fatal error when an object does not implement toString\r
+--SKIPIF--\r
+<?php if (!extension_loaded("filter")) die("skip"); ?>\r
+--FILE--\r
+<?php\r
+var_dump(filter_var(new stdClass, FILTER_VALIDATE_EMAIL));\r
+?>\r
+--EXPECTF-- \r
+bool(false)\r