зеркало из https://github.com/microsoft/git.git
daemon: do not forbid user relative paths unconditionally under --base-path
Using base-path to relocate the server public space does not have anything to do with allowing or forbidding user relative paths. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
df9892ffce
Коммит
363f24c936
12
daemon.c
12
daemon.c
|
@ -145,13 +145,17 @@ static char *path_ok(char *dir)
|
|||
|
||||
if (base_path) {
|
||||
static char rpath[PATH_MAX];
|
||||
if (*dir != '/') {
|
||||
/* Forbid possible base-path evasion using ~paths. */
|
||||
if (!strict_paths && *dir == '~')
|
||||
; /* allow user relative paths */
|
||||
else if (*dir != '/') {
|
||||
/* otherwise allow only absolute */
|
||||
logerror("'%s': Non-absolute path denied (base-path active)", dir);
|
||||
return NULL;
|
||||
}
|
||||
snprintf(rpath, PATH_MAX, "%s%s", base_path, dir);
|
||||
dir = rpath;
|
||||
else {
|
||||
snprintf(rpath, PATH_MAX, "%s%s", base_path, dir);
|
||||
dir = rpath;
|
||||
}
|
||||
}
|
||||
|
||||
path = enter_repo(dir, strict_paths);
|
||||
|
|
Загрузка…
Ссылка в новой задаче