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:
Junio C Hamano 2006-02-03 23:50:55 -08:00
Родитель df9892ffce
Коммит 363f24c936
1 изменённых файлов: 8 добавлений и 4 удалений

Просмотреть файл

@ -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);