summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNuno Lopes <nlopess@php.net>2006-11-09 16:33:07 +0000
committerNuno Lopes <nlopess@php.net>2006-11-09 16:33:07 +0000
commit98dd25e04ced19a8040ecc420c7b5a84bea4ea8e (patch)
treed710be920ca8d7f1573f7c7d71a3cb3215831fe8
parentd6802e102277afe72f6091f4f971bad47119d1a5 (diff)
downloadphp-git-98dd25e04ced19a8040ecc420c7b5a84bea4ea8e.tar.gz
fix an invalid read + invalid free()
-rw-r--r--ext/filter/callback_filter.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/filter/callback_filter.c b/ext/filter/callback_filter.c
index a825a5dc38..fd8ed2d4cd 100644
--- a/ext/filter/callback_filter.c
+++ b/ext/filter/callback_filter.c
@@ -42,15 +42,14 @@ void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL)
if (retval_ptr != value) {
zval_dtor(value);
COPY_PZVAL_TO_ZVAL(*value, retval_ptr);
+ } else {
+ zval_ptr_dtor(&retval_ptr);
}
} else {
zval_dtor(value);
Z_TYPE_P(value) = IS_NULL;
}
- if (retval_ptr) {
- zval_ptr_dtor(&retval_ptr);
- }
efree(args);
}