Browse Source

Fixed bug #32981 (ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault)

PHP-5.1
Dmitry Stogov 21 years ago
parent
commit
976edd47e2
  1. 2
      NEWS
  2. 1
      Zend/zend_reflection_api.c
  3. 1
      ext/reflection/php_reflection.c
  4. 2
      ext/reflection/tests/bug32981.phpt

2
NEWS

@ -50,6 +50,8 @@ PHP NEWS
- Fixed bug #33558 (warning with nested calls to functions returning by
reference). (Dmitry)
- Fixed bug #33326 (Cannot build extensions with phpize on Macosx). (Jani)
- Fixed bug #32981 (ReflectionMethod::getStaticVariables() causes apache2.0.54
seg fault). (Dmitry)
- Fixed bug #32139 (SOAP client does not auto-handle base64 encoding). (Ilia)
- Fixed bug #32010 (Memory leak in mssql_fetch_batch). (fmk)
- Fixed bug #29334 (win32 mail() provides incorrect Date: header). (Jani)

1
Zend/zend_reflection_api.c

@ -1373,6 +1373,7 @@ ZEND_METHOD(reflection_function, getStaticVariables)
/* Return an empty array in case no static variables exist */
array_init(return_value);
if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.static_variables != NULL) {
zend_hash_apply_with_argument(fptr->op_array.static_variables, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC);
zend_hash_copy(Z_ARRVAL_P(return_value), fptr->op_array.static_variables, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_copy, sizeof(zval *));
}
}

1
ext/reflection/php_reflection.c

@ -1373,6 +1373,7 @@ ZEND_METHOD(reflection_function, getStaticVariables)
/* Return an empty array in case no static variables exist */
array_init(return_value);
if (fptr->type == ZEND_USER_FUNCTION && fptr->op_array.static_variables != NULL) {
zend_hash_apply_with_argument(fptr->op_array.static_variables, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC);
zend_hash_copy(Z_ARRVAL_P(return_value), fptr->op_array.static_variables, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_copy, sizeof(zval *));
}
}

2
ext/reflection/tests/bug32981.phpt

@ -28,7 +28,7 @@ array(1) {
[0]=>
array(1) {
["enabled"]=>
UNKNOWN:0
bool(true)
}
}
===DONE===
Loading…
Cancel
Save