btrfs-progs: mkfs rootdir: use lgetxattr() not to follow a symbolic link
authorMisono Tomohiro <misono.tomohiro@jp.fujitsu.com>
Mon, 2 Apr 2018 01:59:31 +0000 (10:59 +0900)
committerDavid Sterba <dsterba@suse.com>
Fri, 6 Apr 2018 13:06:50 +0000 (15:06 +0200)
mkfs-test 016 "rootdir-bad-symbolic-link" fails when selinux is enabled.
This is because add_xattr_item() uses getxattr() and tries to follow a
bad symbolic link for selinux item, which causes ENOENT error.

The line above already uses llistxattr() for getting list of xattr in
order not to follow a symbolic link, so just use lgetxattr() too.

Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
mkfs/rootdir.c

index 33c3ff1..ff00bb0 100644 (file)
@@ -249,7 +249,7 @@ static int add_xattr_item(struct btrfs_trans_handle *trans,
                cur_name_len = strlen(cur_name);
                next_location += cur_name_len + 1;
 
-               ret = getxattr(file_name, cur_name, cur_value, XATTR_SIZE_MAX);
+               ret = lgetxattr(file_name, cur_name, cur_value, XATTR_SIZE_MAX);
                if (ret < 0) {
                        if (errno == ENOTSUP)
                                return 0;