From 42ea9cb286423c949d42ad33823a5221182f84bf Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 5 May 2005 16:18:48 -0700 Subject: Be more careful about tree entry modes. The tree object parsing used to get the executable bit wrong, and didn't know about symlinks. Also, fsck really wants the full mode value so that it can verify the other bits for sanity, so save it all in struct tree_entry. --- tree.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tree.c') diff --git a/tree.c b/tree.c index 4a26603f6e..468f99e494 100644 --- a/tree.c +++ b/tree.c @@ -122,8 +122,10 @@ int parse_tree(struct tree *item) entry = xmalloc(sizeof(struct tree_entry_list)); entry->name = strdup(path + 1); - entry->directory = S_ISDIR(mode); - entry->executable = mode & S_IXUSR; + entry->directory = S_ISDIR(mode) != 0; + entry->executable = (mode & S_IXUSR) != 0; + entry->symlink = S_ISLNK(mode) != 0; + entry->mode = mode; entry->next = NULL; bufptr += len + 20; -- cgit v1.2.3