Browse Source

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>
maint
Junio C Hamano 19 years ago
parent
commit
363f24c936
  1. 12
      daemon.c

12
daemon.c

@ -145,13 +145,17 @@ static char *path_ok(char *dir) @@ -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);

Loading…
Cancel
Save