about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLars Hjemli <larsh@slackbox.hjemli.net>2009-09-06 19:33:10 +0200
committerLars Hjemli <larsh@slackbox.hjemli.net>2009-09-06 19:33:10 +0200
commitb507252b469333d06afff0888d466e39124a7e07 (patch)
tree05b98ce7a9b600679fd4fad437459e25c60d194a
parenttruncate buffer before reading empty files (diff)
downloadcgit-pink-b507252b469333d06afff0888d466e39124a7e07.tar.gz
cgit-pink-b507252b469333d06afff0888d466e39124a7e07.zip
ui-plain.c: only return the blob with the specified path
When a path to a directory was specified for the 'plain'
view, each blob in the directory used to be returned to
the client. This patch fixes the issue by matching the
path of each blob against the requested path.

Noticed-by: Lars Stoltenow <penma@penma.de>
Signed-off-by: Lars Hjemli <larsh@slackbox.hjemli.net>
Diffstat (limited to '')
-rw-r--r--ui-plain.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ui-plain.c b/ui-plain.c
index 5addd9e..e08b15b 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -46,7 +46,8 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
 	if (S_ISDIR(mode))
 		return READ_TREE_RECURSIVE;
 
-	if (S_ISREG(mode))
+	if (S_ISREG(mode) && !strncmp(base, match_path, baselen) &&
+	    !strcmp(pathname, match_path + baselen))
 		print_object(sha1, pathname);
 
 	return 0;
t scaling in wsconsctlJune McEnroe 2021-02-06Set root window to black on purple snowJune McEnroe 2021-02-06Add xmodmap configurationJune McEnroe 2021-02-06Add initial OpenBSD X configurationJune McEnroe 2021-02-06Add xterm output to schemeJune McEnroe