(Christoph M. Becker)
. Fixed bug #69703 (Use __builtin_clzl on PowerPC).
(dja at axtens dot net, Kalle)
+ . Fixed bug #69732 (can induce segmentation fault with basic php code).
+ (Dmitry)
- GD:
. Fixed bug #69479 (GD fails to build with newer libvpx). (Remi)
--- /dev/null
+--TEST--
+Bug #69732 (can induce segmentation fault with basic php code)
+--FILE--
+<?php
+class wpq {
+ private $unreferenced;
+
+ public function __get($name) {
+ return $this->$name . "XXX";
+ }
+}
+
+function ret_assoc() {
+ $x = "XXX";
+ return array('foo' => 'bar', $x);
+}
+
+$wpq = new wpq;
+$wpq->interesting =& ret_assoc();
+$x = $wpq->interesting;
+printf("%s\n", $x);
+--EXPECTF--
+Notice: Undefined property: wpq::$interesting in %sbug69732.php on line 6
+
+Notice: Indirect modification of overloaded property wpq::$interesting has no effect in %sbug69732.php on line 16
+
+Strict Standards: Only variables should be assigned by reference in %sbug69732.php on line 16
+
+Notice: Undefined property: wpq::$interesting in %sbug69732.php on line 6
+XXX
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL)) {
+ zval_ptr_dtor(&value);
+ }
/* zend_assign_to_variable() always takes care of op2, never free it! */
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL)) {
+ zval_ptr_dtor(&value);
+ }
/* zend_assign_to_variable() always takes care of op2, never free it! */
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL)) {
+ zval_ptr_dtor(&value);
+ }
/* zend_assign_to_variable() always takes care of op2, never free it! */
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL)) {
+ zval_ptr_dtor(&value);
+ }
/* zend_assign_to_variable() always takes care of op2, never free it! */
}
}
+ if (IS_CV == IS_VAR && 0) {
+ zval_ptr_dtor(&value);
+ }
+
/* zend_assign_to_variable() always takes care of op2, never free it! */
CHECK_EXCEPTION();
}
}
+ if (IS_CV == IS_VAR && 0) {
+ zval_ptr_dtor(&value);
+ }
+
/* zend_assign_to_variable() always takes care of op2, never free it! */
CHECK_EXCEPTION();
}
}
+ if (IS_CV == IS_VAR && 0) {
+ zval_ptr_dtor(&value);
+ }
+
/* zend_assign_to_variable() always takes care of op2, never free it! */
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
}
}
+ if (IS_CV == IS_VAR && 0) {
+ zval_ptr_dtor(&value);
+ }
+
/* zend_assign_to_variable() always takes care of op2, never free it! */
CHECK_EXCEPTION();