CVS update: php3
| From: | rasmus | Date: | Tue, 22 Sep 1998 14:59:56 +0000 |
| Subject: | CVS update: php3 | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-1393@lists.php.net to get a copy of this message | ||
Date: Tuesday September 22, 1998 @ 10:59
Author: rasmus
Update of /repository/php3
In directory asf:/u2/tmp/cvs-serv12964
Modified Files:
fopen-wrappers.c
Log Message:
safe mode fixes. Should fix bug #643
Index: php3/fopen-wrappers.c
diff -c php3/fopen-wrappers.c:1.49 php3/fopen-wrappers.c:1.50
*** php3/fopen-wrappers.c:1.49 Sat Sep 19 16:17:04 1998
--- php3/fopen-wrappers.c Tue Sep 22 10:59:53 1998
***************
*** 27,33 ****
| Jim Winstead <jimw@php.net> |
+----------------------------------------------------------------------+
*/
! /* $Id: fopen-wrappers.c,v 1.49 1998/09/19 20:17:04 rasmus Exp $ */
#ifdef THREAD_SAFE
#include "tls.h"
--- 27,33 ----
| Jim Winstead <jimw@php.net> |
+----------------------------------------------------------------------+
*/
! /* $Id: fopen-wrappers.c,v 1.50 1998/09/22 14:59:53 rasmus Exp $ */
#ifdef THREAD_SAFE
#include "tls.h"
***************
*** 179,184 ****
--- 179,185 ----
PHPAPI FILE *php3_fopen_wrapper(char *path, char *mode, int options, int *issock, int *socketd)
{
+ int cm=2; /* checkuid mode: 2 = if file does not exist, check directory */
#if PHP3_URL_FOPEN
if (!(options & IGNORE_URL)) {
return php3_fopen_url_wrapper(path, mode, options, issock, socketd);
***************
*** 188,194 ****
if (options & USE_PATH && php3_ini.include_path != NULL) {
return php3_fopen_with_path(path, mode, php3_ini.include_path, NULL);
} else {
! if (options & ENFORCE_SAFE_MODE && php3_ini.safe_mode &&
(!_php3_checkuid(path, 1))) {
return NULL;
}
if (_php3_check_open_basedir(path)) return NULL;
--- 189,196 ----
if (options & USE_PATH && php3_ini.include_path != NULL) {
return php3_fopen_with_path(path, mode, php3_ini.include_path, NULL);
} else {
! if(!strcmp(mode,"r") || !strcmp(mode,"r+")) cm=0;
! if (options & ENFORCE_SAFE_MODE && php3_ini.safe_mode &&
(!_php3_checkuid(path, cm))) {
return NULL;
}
if (_php3_check_open_basedir(path)) return NULL;
***************
*** 301,314 ****
char trypath[MAXPATHLEN + 1];
struct stat sb;
FILE *fp;
TLS_VARS;
if (opened_path) {
*opened_path = NULL;
}
/* Relative path open */
if (*filename == '.') {
! if (php3_ini.safe_mode && (!_php3_checkuid(filename, 2))) {
return NULL;
}
if (_php3_check_open_basedir(filename)) return NULL;
--- 303,318 ----
char trypath[MAXPATHLEN + 1];
struct stat sb;
FILE *fp;
+ int cm=2;
TLS_VARS;
+ if(!strcmp(mode,"r") || !strcmp(mode,"r+")) cm=0;
if (opened_path) {
*opened_path = NULL;
}
/* Relative path open */
if (*filename == '.') {
! if (php3_ini.safe_mode && (!_php3_checkuid(filename, cm))) {
return NULL;
}
if (_php3_check_open_basedir(filename)) return NULL;
***************
*** 330,336 ****
} else {
strncpy(trypath,filename,MAXPATHLEN);
}
! if (!_php3_checkuid(trypath, 2)) {
return NULL;
}
if (_php3_check_open_basedir(trypath)) return NULL;
--- 334,340 ----
} else {
strncpy(trypath,filename,MAXPATHLEN);
}
! if (!_php3_checkuid(trypath, cm)) {
return NULL;
}
if (_php3_check_open_basedir(trypath)) return NULL;
***************
*** 345,351 ****
}
}
if (!path || (path && !*path)) {
! if (php3_ini.safe_mode && (!_php3_checkuid(filename, 2))) {
return NULL;
}
if (_php3_check_open_basedir(filename)) return NULL;
--- 349,355 ----
}
}
if (!path || (path && !*path)) {
! if (php3_ini.safe_mode && (!_php3_checkuid(filename, cm))) {
return NULL;
}
if (_php3_check_open_basedir(filename)) return NULL;
***************
*** 371,377 ****
}
snprintf(trypath, MAXPATHLEN, "%s/%s", ptr, filename);
if (php3_ini.safe_mode) {
! if (stat(trypath, &sb) == 0 && (!_php3_checkuid(trypath, 2))) {
efree(pathbuf);
return NULL;
}
--- 375,381 ----
}
snprintf(trypath, MAXPATHLEN, "%s/%s", ptr, filename);
if (php3_ini.safe_mode) {
! if (stat(trypath, &sb) == 0 && (!_php3_checkuid(trypath, cm))) {
efree(pathbuf);
return NULL;
}
***************
*** 879,885 ****
if (options & USE_PATH) {
fp = php3_fopen_with_path(path, mode, php3_ini.include_path, NULL);
} else {
! if (options & ENFORCE_SAFE_MODE && php3_ini.safe_mode &&
(!_php3_checkuid(path, 1))) {
fp = NULL;
} else {
if (_php3_check_open_basedir(path)) {
--- 883,891 ----
if (options & USE_PATH) {
fp = php3_fopen_with_path(path, mode, php3_ini.include_path, NULL);
} else {
! int cm=2;
! if(!strcmp(mode,"r") || !strcmp(mode,"r+")) cm=0;
! if (options & ENFORCE_SAFE_MODE && php3_ini.safe_mode &&
(!_php3_checkuid(path, cm))) {
fp = NULL;
} else {
if (_php3_check_open_basedir(path)) {
--
PHP Development Mailing List http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net
For help: php-dev-help@lists.php.net