Thread (4 messages) flat view 4 messages, 2 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help