• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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