summaryrefslogtreecommitdiff
path: root/ext/standard/ftok.c
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-06-20 14:53:57 +0000
committerFelipe Pena <felipe@php.net>2008-06-20 14:53:57 +0000
commit5fe790929d0a6bc9563a43c64e7ad168312825f2 (patch)
tree789e7be93e8bdba25eed00ffa3c97f026c8df78f /ext/standard/ftok.c
parentc88e99d9eab9d6ac10ea5072e60e75752de3077b (diff)
downloadphp-git-5fe790929d0a6bc9563a43c64e7ad168312825f2.tar.gz
- New parameter parsing API
Diffstat (limited to 'ext/standard/ftok.c')
-rw-r--r--ext/standard/ftok.c18
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));
}