if (Z_TYPE_P(group) == IS_LONG) {
gid = (gid_t)Z_LVAL_P(group);
} else if (Z_TYPE_P(group) == IS_STRING ||
- Z_TYPE_P(group) == IS_UNICODE) {
+ Z_TYPE_P(group) == IS_UNICODE
+ ) {
if (Z_TYPE_P(group) == IS_UNICODE) {
zval_unicode_to_string(group TSRMLS_CC);
}
gid = gr->gr_gid;
#endif
} else {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "parameter 2 should be string or integer, %s given",zend_zval_type_name(group));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "parameter 2 should be string or integer, %s given", zend_zval_type_name(group));
RETURN_FALSE;
}
}
if (Z_TYPE_P(user) == IS_LONG) {
- uid = (uid_t)Z_LVAL_P(user);
- } else {
+ uid = (uid_t) Z_LVAL_P(user);
+ } else if (Z_TYPE_P(user) == IS_STRING ||
+ Z_TYPE_P(user) == IS_UNICODE
+ ) {
+ if (Z_TYPE_P(user) == IS_UNICODE) {
+ zval_unicode_to_string(user TSRMLS_CC);
+ }
#if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWNAM_R)
struct passwd pw;
struct passwd *retpwptr = NULL;
}
uid = pw->pw_uid;
#endif
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "parameter 2 should be string or integer, %s given", zend_zval_type_name(user));
+ RETURN_FALSE;
}
if (filename_type == IS_UNICODE) {