jani Wed Nov 21 11:30:29 2007 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/standard filestat.c
Log:
MFH: fix crash bug in chown when 2nd parameter != string or int
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/filestat.c?r1=1.136.2.8.2.14.2.3&r2=1.136.2.8.2.14.2.4&diff_format=u
Index: php-src/ext/standard/filestat.c
diff -u php-src/ext/standard/filestat.c:1.136.2.8.2.14.2.3
php-src/ext/standard/filestat.c:1.136.2.8.2.14.2.4
--- php-src/ext/standard/filestat.c:1.136.2.8.2.14.2.3 Fri Nov 16 14:24:08 2007
+++ php-src/ext/standard/filestat.c Wed Nov 21 11:30:29 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: filestat.c,v 1.136.2.8.2.14.2.3 2007/11/16 14:24:08 dmitry Exp $ */
+/* $Id: filestat.c,v 1.136.2.8.2.14.2.4 2007/11/21 11:30:29 jani Exp $ */
#include "php.h"
#include "safe_mode.h"
@@ -430,7 +430,7 @@
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;
}
@@ -502,7 +502,7 @@
if (Z_TYPE_P(user) == IS_LONG) {
uid = (uid_t)Z_LVAL_P(user);
- } else {
+ } else if (Z_TYPE_P(user) == IS_STRING) {
#if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWNAM_R)
struct passwd pw;
struct passwd *retpwptr = NULL;
@@ -530,9 +530,12 @@
}
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 (PG(safe_mode) &&(!php_checkuid(filename, NULL,
CHECKUID_ALLOW_FILE_NOT_EXISTS))) {
+ if (PG(safe_mode) && (!php_checkuid(filename, NULL,
CHECKUID_ALLOW_FILE_NOT_EXISTS))) {
RETURN_FALSE;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php