]> granicus.if.org Git - cgit/commitdiff
ui-plain.c: only return the blob with the specified path
authorLars Hjemli <larsh@slackbox.hjemli.net>
Sun, 6 Sep 2009 17:33:10 +0000 (19:33 +0200)
committerLars Hjemli <larsh@slackbox.hjemli.net>
Sun, 6 Sep 2009 17:33:10 +0000 (19:33 +0200)
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>
ui-plain.c

index 5addd9e686539ca41f264394ecf6836aa739af4e..e08b15be1a85e46532623868640a49aea2a7f384 100644 (file)
@@ -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;