From: Jani Taskinen Date: Wed, 6 Aug 2008 04:48:39 +0000 (+0000) Subject: - MFB: sync parameter parsing API changes in session_set_save_handler() X-Git-Tag: BEFORE_HEAD_NS_CHANGE~851 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ea0dbec8b7f1751545e4a037a4d8decb4fff496e;p=php - MFB: sync parameter parsing API changes in session_set_save_handler() --- diff --git a/ext/session/session.c b/ext/session/session.c index 7ca9ade062..8a959b84cf 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1503,21 +1503,25 @@ static PHP_FUNCTION(session_module_name) Sets user-level functions */ static PHP_FUNCTION(session_set_save_handler) { - zval **args[6]; - int i; + zval ***args = NULL; + int i, num_args, argc = ZEND_NUM_ARGS(); zval name; if (PS(session_status) != php_session_none) { RETURN_FALSE; } - if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_array_ex(6, args) == FAILURE) { + if (argc != 6) { WRONG_PARAM_COUNT; } + if (zend_parse_parameters(argc TSRMLS_CC, "+", &args, &num_args) == FAILURE) { + return; + } for (i = 0; i < 6; i++) { if (!zend_is_callable(*args[i], 0, &name TSRMLS_CC)) { + efree(args); php_error_docref(NULL TSRMLS_CC, E_WARNING, "Argument %d is not a valid callback", i+1); zval_dtor(&name); RETURN_FALSE; @@ -1531,10 +1535,11 @@ static PHP_FUNCTION(session_set_save_handler) if (PS(mod_user_names).names[i] != NULL) { zval_ptr_dtor(&PS(mod_user_names).names[i]); } - Z_ADDREF_P(*args[i]); + Z_ADDREF_PP(args[i]); PS(mod_user_names).names[i] = *args[i]; } + efree(args); RETURN_TRUE; } /* }}} */