1# Copyright 2017 syzkaller project authors. All rights reserved. 2# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4include <linux/xattr.h> 5 6setxattr(path ptr[in, filename], name ptr[in, xattr_name], val ptr[in, string], size len[val], flags flags[setxattr_flags]) 7lsetxattr(path ptr[in, filename], name ptr[in, xattr_name], val ptr[in, string], size len[val], flags flags[setxattr_flags]) 8fsetxattr(fd fd, name ptr[in, xattr_name], val ptr[in, string], size len[val], flags flags[setxattr_flags]) 9getxattr(path ptr[in, filename], name ptr[in, xattr_name], val buffer[out], size len[val]) 10lgetxattr(path ptr[in, filename], name ptr[in, xattr_name], val buffer[out], size len[val]) 11fgetxattr(fd fd, name ptr[in, xattr_name], val buffer[out], size len[val]) 12listxattr(path ptr[in, filename], list buffer[out], size len[list]) 13llistxattr(path ptr[in, filename], list buffer[out], size len[list]) 14flistxattr(fd fd, list buffer[out], size len[list]) 15removexattr(path ptr[in, filename], name ptr[in, xattr_name]) 16lremovexattr(path ptr[in, filename], name ptr[in, xattr_name]) 17fremovexattr(fd fd, name ptr[in, xattr_name]) 18 19xattr_name [ 20 known string[xattr_names] 21 random xattr_name_random 22] [varlen] 23 24xattr_name_random { 25 prefix stringnoz[xattr_prefix] 26 name string 27} [packed] 28 29setxattr_flags = XATTR_CREATE, XATTR_REPLACE 30 31xattr_prefix = "system.", "trusted.", "security.", "user.", "btrfs.", "osx.", "os2." 32 33xattr_names = "system.posix_acl_access", "system.posix_acl_default", "system.advise", "system.sockprotoname", "com.apple.FinderInfo", "com.apple.system.Security", "user.syz", "trusted.syz", "security.evm", "security.ima", "security.selinux", "security.capability" 34