From: Thies C. Arntzen Date: Mon, 18 Oct 1999 15:03:29 +0000 (+0000) Subject: (PHP unserialize) - fixed mem-leak. X-Git-Tag: php-4.0b3_RC2~140 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf1134787aac10d7d65eeed0470e0886ef85d521;p=php (PHP unserialize) - fixed mem-leak. --- diff --git a/ext/standard/var.c b/ext/standard/var.c index f5d61dc1f5..6f82505b2f 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -419,6 +419,7 @@ int php_var_unserialize(pval **rval, const char **p, const char *max) (*p)++; } if (**p != ':' || *((*p) + 1) != '{') { + pval_destructor(*rval); return 0; } for ((*p) += 2; **p && **p != '}' && i > 0; i--) { @@ -426,11 +427,13 @@ int php_var_unserialize(pval **rval, const char **p, const char *max) pval *data = emalloc(sizeof(pval)); if (!php_var_unserialize(&key, p, max)) { + pval_destructor(*rval); efree(key); efree(data); return 0; } if (!php_var_unserialize(&data, p, max)) { + pval_destructor(*rval); pval_destructor(key); efree(key); efree(data);