From c9ba7b8ae1064cd64894e98c09863123d81e8e12 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sat, 22 Jun 2019 23:49:39 +0200 Subject: fix: always set permissions on symlinks to 0777 Signed-off-by: David Oberhollenzer --- lib/fstree/mknode.c | 1 + tests/mknode_slink.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/fstree/mknode.c b/lib/fstree/mknode.c index 247e2b5..e4620f5 100644 --- a/lib/fstree/mknode.c +++ b/lib/fstree/mknode.c @@ -57,6 +57,7 @@ tree_node_t *fstree_mknode(fstree_t *fs, tree_node_t *parent, const char *name, strcpy(n->data.file->input_file, extra); break; case S_IFLNK: + n->mode = S_IFLNK | 0777; n->data.slink_target = (char *)n->payload; strcpy(n->data.slink_target, extra); break; diff --git a/tests/mknode_slink.c b/tests/mknode_slink.c index 1cea92d..6dbccc8 100644 --- a/tests/mknode_slink.c +++ b/tests/mknode_slink.c @@ -22,7 +22,7 @@ int main(void) node = fstree_mknode(&fs, NULL, "symlink", 7, "target", &sb); assert(node->uid == sb.st_uid); assert(node->gid == sb.st_gid); - assert(node->mode == sb.st_mode); + assert(node->mode == (S_IFLNK | 0777)); assert(node->parent == NULL); assert((char *)node->name >= (char *)node->payload); assert(node->data.slink_target >= (char *)node->payload); @@ -34,7 +34,7 @@ int main(void) node = fstree_mknode(&fs, NULL, "symlink", 7, "", &sb); assert(node->uid == sb.st_uid); assert(node->gid == sb.st_gid); - assert(node->mode == sb.st_mode); + assert(node->mode == (S_IFLNK | 0777)); assert(node->parent == NULL); assert((char *)node->name >= (char *)node->payload); assert(node->data.slink_target >= (char *)node->payload); -- cgit v1.2.3