diff options
Diffstat (limited to 'main/safe_mode.c')
| -rw-r--r-- | main/safe_mode.c | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/main/safe_mode.c b/main/safe_mode.c index 97c7613dde..e14ba189f9 100644 --- a/main/safe_mode.c +++ b/main/safe_mode.c @@ -122,10 +122,17 @@ PHPAPI int php_checkuid_ex(const char *filename, const char *fopen_mode, int mod  		/* Trim off filename */  		if ((s = strrchr(path, DEFAULT_SLASH))) { -			if (s == path) -				path[1] = '\0'; -			else +			if (*(s + 1) == '\0' && s != path) { /* make sure that the / is not the last character */  				*s = '\0'; +				s = strrchr(path, DEFAULT_SLASH); +			} +			if (s) { +				if (s == path) { +					path[1] = '\0'; +				} else { +					*s = '\0'; +				} +			}  		}  	} else { /* CHECKUID_ALLOW_ONLY_DIR */  		s = strrchr(filename, DEFAULT_SLASH);  | 
