diff options
-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); |