Re: [PATCH 4/4] git-daemon support for user-relative paths.
From: Andreas Ericsson <hidden>
Date: 2016-06-15 22:42:10
Junio C Hamano wrote:
Andreas Ericsson [off-list ref] writes:quoted
+ [--timeout=n] [--init-timeout=n] [--strict-paths] [directory...]Why not just --strict?quoted
@@ -10,16 +10,18 @@#include "pkt-line.h" #include "cache.h" -static int log_syslog; +static int log_syslog = 0;I'd drop this.
No can do. It has to be set either here or down in main. It's nice to have the default in the declaration.
quoted
/* If this is set, git-daemon-export-ok is not required */ static int export_all_trees = 0;@@ -81,69 +83,49 @@ static void loginfo(const char *err, ...va_end(params); } -static int path_ok(const char *dir) +static const char *path_ok(const char *dir) { + const char *path = is_git_repo(dir, strict_paths); + /* No such directory or not a git archive */ + if(!path) { + logerror("'%s': unable to chdir or not a git archive", dir); + return NULL; } if ( ok_paths && *ok_paths ) { + char **pp = NULL; + int dirlen = strlen(path); for ( pp = ok_paths ; *pp ; pp++ ) { int len = strlen(*pp); + if ( len <= dirlen && !strncmp(*pp, path, len) ) { + if( path[len] == '\0' || (!strict_paths && path[len] == '/') ) + return path; } }Sorry, but I am a bit confused. Does this mean that you need to list all directories under --strict-paths, instead of saying "/pub/scm and everything under it is OK"?
Only if --strict-paths is set, otherwise it works as usual. It's documented in the man-page, but perhaps it's a bit too paranoid.
I like the general direction this set is taking, but let's let it simmer for a while.
Ok. I'll take that to mean "hold off on the --server-root and --userdir patch for a while" then. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231