The code violated the strict aliasing restriction, because it
dereferenced the same pointer as zval** once and as void**
afterwards. Now both occurances dereference void** and cast to
zval* in the former case.
--enable-dtrace). (Chris Jones, Kris Van Hees)
. Fixed bug #65225 (PHP_BINARY incorrectly set). (Patrick Allaert)
. Fixed bug #62692 (PHP fails to build with DTrace). (Chris Jones, Kris Van Hees)
+ . Fixed bug #46311 (Pointer aliasing issue results in miscompile on gcc4.4).
+ (Nikita Popov)
- cURL:
. Fixed bug #65458 (curl memory leak). (Adam)
void **end = p - (int)(zend_uintptr_t)*p;
while (p != end) {
- zval *q = *(zval **)(--p);
+ zval *q = *(--p);
*p = NULL;
i_zval_ptr_dtor(q ZEND_FILE_LINE_CC);
}