Browse Source

Better fix for the memleaks (bug 19943) by Moriyoshi

migration/unlabaled-1.3.2
foobar 24 years ago
parent
commit
66052056c7
  1. 18
      Zend/zend_execute.c

18
Zend/zend_execute.c

@ -466,10 +466,20 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2
}
T->EA.data.str_offset.str->value.str.val[T->EA.data.str_offset.offset] = final_value->value.str.val[0];
if (op2
&& op2->op_type != IS_VAR
&& final_value == &T(op2->u.var).tmp_var) {
STR_FREE(final_value->value.str.val);
if (op2) {
if (op2->op_type == IS_VAR) {
if (value == &T(op2->u.var).tmp_var) {
STR_FREE(value->value.str.val);
}
} else {
if (final_value == &T(op2->u.var).tmp_var) {
/* we can safely free final_value here
* because separation is done only
* in case op2->op_type == IS_VAR */
STR_FREE(final_value->value.str.val);
}
}
}
if (final_value == &tmp) {
zval_dtor(final_value);

Loading…
Cancel
Save