?? ??? 2011, PHP 5.3.7
- Core:
. Fixed crash in error_log(). (Felipe) Reported by Mateusz Kocielski.
+ . Fixed bug #55082 (var_export() doesn't escape properties properly).
+ (Gustavo)
- DateTime extension:
. Fixed bug where the DateTime object got changed while using date_diff().
{
int level;
smart_str *buf;
- char *prop_name, *class_name;
level = va_arg(args, int);
buf = va_arg(args, smart_str *);
buffer_append_spaces(buf, level + 2);
if (hash_key->nKeyLength != 0) {
- zend_unmangle_property_name(hash_key->arKey, hash_key->nKeyLength - 1, &class_name, &prop_name);
+ char *class_name, /* ignored, but must be passed to unmangle */
+ *pname,
+ *pname_esc;
+ int pname_esc_len;
+
+ zend_unmangle_property_name(hash_key->arKey, hash_key->nKeyLength - 1,
+ &class_name, &pname);
+ pname_esc = php_addcslashes(pname, strlen(pname), &pname_esc_len, 0,
+ "'\\", 2 TSRMLS_CC);
smart_str_appendc(buf, '\'');
- smart_str_appends(buf, prop_name);
+ smart_str_appendl(buf, pname_esc, pname_esc_len);
smart_str_appendc(buf, '\'');
+ efree(pname_esc);
} else {
smart_str_append_long(buf, hash_key->h);
}