summaryrefslogtreecommitdiff
path: root/ext/posix/posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/posix/posix.c')
-rw-r--r--ext/posix/posix.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/posix/posix.c b/ext/posix/posix.c
index 26b76cc4bf..890609e565 100644
--- a/ext/posix/posix.c
+++ b/ext/posix/posix.c
@@ -676,7 +676,7 @@ PHP_FUNCTION(posix_mknod)
char *path;
int path_len;
long mode;
- long major, minor = 0;
+ long major = 0, minor = 0;
int result;
dev_t php_dev;
@@ -693,9 +693,13 @@ PHP_FUNCTION(posix_mknod)
}
if ((mode & S_IFCHR) || (mode & S_IFBLK)) {
+ if (ZEND_NUM_ARGS() == 2) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "For S_IFCHR and S_IFBLK you need to pass a major device kernel identifier");
+ RETURN_FALSE;
+ }
if (major == 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING,
- "expects argument 4 to be non-zero for POSIX_S_IFCHR and POSIX_S_IFBLK");
+ "Expects argument 3 to be non-zero for POSIX_S_IFCHR and POSIX_S_IFBLK");
RETURN_FALSE;
} else {
#if defined(HAVE_MAKEDEV) || defined(makedev)