cvs: php4 /main safe_mode.c

From: Date: Sat, 13 Jul 2002 00:52:18 +0000
Subject: cvs: php4 /main safe_mode.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-12806@lists.php.net to get a copy of this message
sniper Fri Jul 12 20:52:18 2002 EDT Modified files: /php4/main safe_mode.c Log: Fix bug: #18285, php_checkuid() mangled the passed path. Index: php4/main/safe_mode.c diff -u php4/main/safe_mode.c:1.44 php4/main/safe_mode.c:1.45 --- php4/main/safe_mode.c:1.44 Sun Mar 17 16:00:44 2002 +++ php4/main/safe_mode.c Fri Jul 12 20:52:18 2002 @@ -15,7 +15,7 @@ | Author: Rasmus Lerdorf <rasmus@lerdorf.on.ca> | +----------------------------------------------------------------------+ */ -/* $Id: safe_mode.c,v 1.44 2002/03/17 21:00:44 sesser Exp $ */ +/* $Id: safe_mode.c,v 1.45 2002/07/13 00:52:18 sniper Exp $ */ #include "php.h" @@ -49,9 +49,12 @@ int ret, nofile=0; long uid=0L, gid=0L, duid=0L, dgid=0L; char path[MAXPATHLEN]; - char *s; + char *s, filenamecopy[MAXPATHLEN]; TSRMLS_FETCH(); + strlcpy(filenamecopy, filename, MAXPATHLEN); + filename=(char *)&filenamecopy; + if (!filename) { return 0; /* path must be provided */ } @@ -67,7 +70,7 @@ /* * If given filepath is a URL, allow - safe mode stuff * related to URL's is checked in individual functions - */ + */ if (!strncasecmp(filename,"http://", 7) || !strncasecmp(filename,"ftp://", 6)) { return 1; } @@ -116,7 +119,7 @@ VCWD_REALPATH(filename, path); *s = DEFAULT_SLASH; } else { - VCWD_GETCWD(path, MAXPATHLEN); + VCWD_GETCWD(path, sizeof(path)); } } /* end CHECKUID_ALLOW_ONLY_DIR */

« previous php.cvs (#12806) next »