From: Junio C Hamano Date: Sat, 4 Feb 2006 07:50:55 +0000 (-0800) Subject: daemon: do not forbid user relative paths unconditionally under --base-path X-Git-Tag: v1.2.0~57^2~2 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=363f24c93695d26f5af584e99093689077b1c7dd;p=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 --- diff --git a/daemon.c b/daemon.c index 532bb0c3..324bb04d 100644 --- a/daemon.c +++ b/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);