diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-22 23:49:39 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-22 23:49:59 +0200 |
commit | c9ba7b8ae1064cd64894e98c09863123d81e8e12 (patch) | |
tree | 93d0f4e14ba786d3e749e25e9445e7a7ca915237 | |
parent | 56786917339c1ac2190b8b903eaf79e60d726973 (diff) |
fix: always set permissions on symlinks to 0777
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-rw-r--r-- | lib/fstree/mknode.c | 1 | ||||
-rw-r--r-- | 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); |