diff options
Diffstat (limited to 'ext/posix/posix.c')
-rw-r--r-- | ext/posix/posix.c | 8 |
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) |