diff options
author | Felipe Pena <felipe@php.net> | 2008-06-20 14:53:57 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2008-06-20 14:53:57 +0000 |
commit | 5fe790929d0a6bc9563a43c64e7ad168312825f2 (patch) | |
tree | 789e7be93e8bdba25eed00ffa3c97f026c8df78f /ext/standard/ftok.c | |
parent | c88e99d9eab9d6ac10ea5072e60e75752de3077b (diff) | |
download | php-git-5fe790929d0a6bc9563a43c64e7ad168312825f2.tar.gz |
- New parameter parsing API
Diffstat (limited to 'ext/standard/ftok.c')
-rw-r--r-- | ext/standard/ftok.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/ext/standard/ftok.c b/ext/standard/ftok.c index f9ef6adf9d..7298a8db61 100644 --- a/ext/standard/ftok.c +++ b/ext/standard/ftok.c @@ -31,31 +31,29 @@ Convert a pathname and a project identifier to a System V IPC key */ PHP_FUNCTION(ftok) { - zval **pathname, **proj; + char *pathname, *proj; + int pathname_len, proj_len; key_t k; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pathname, &proj) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, &pathname, &pathname_len, &proj, &proj_len) == FAILURE) { + return; } - convert_to_string_ex(pathname); - convert_to_string_ex(proj); - - if (Z_STRLEN_PP(pathname)==0){ + if (pathname_len == 0){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Pathname is invalid"); RETURN_LONG(-1); } - if (Z_STRLEN_PP(proj)!=1){ + if (proj_len != 1){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Project identifier is invalid"); RETURN_LONG(-1); } - if ((PG(safe_mode) && (!php_checkuid(Z_STRVAL_PP(pathname), NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(Z_STRVAL_PP(pathname) TSRMLS_CC)) { + if ((PG(safe_mode) && (!php_checkuid(pathname, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(pathname TSRMLS_CC)) { RETURN_LONG(-1); } - k = ftok(Z_STRVAL_PP(pathname),Z_STRVAL_PP(proj)[0]); + k = ftok(pathname, proj[0]); if (k == -1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "ftok() failed - %s", strerror(errno)); } |