| # Copyright 2018 syzkaller project authors. All rights reserved. |
| # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. |
| |
| resource fd_smack_current[fd] |
| |
| # TODO: what exactly is this smack entry? Do we need to pass some known strings? |
| type smack_entry string |
| |
| openat$smack_task_current(fd const[AT_FDCWD], file ptr[in, string["/proc/self/attr/current"]], flags const[O_RDWR], mode const[0]) fd_smack_current |
| openat$smack_thread_current(fd const[AT_FDCWD], file ptr[in, string["/proc/thread-self/attr/current"]], flags const[O_RDWR], mode const[0]) fd_smack_current |
| write$smack_current(fd fd_smack_current, data ptr[in, smack_entry], len len[data]) |
| |
| setxattr$security_smack_entry(path ptr[in, filename], name ptr[in, string[smack_xattr_entry]], val ptr[in, smack_entry], size len[val], flags flags[setxattr_flags]) |
| lsetxattr$security_smack_entry(path ptr[in, filename], name ptr[in, string[smack_xattr_entry]], val ptr[in, smack_entry], size len[val], flags flags[setxattr_flags]) |
| fsetxattr$security_smack_entry(fd fd, name ptr[in, string[smack_xattr_entry]], val ptr[in, smack_entry], size len[val], flags flags[setxattr_flags]) |
| |
| smack_xattr_entry = "security.SMACK64", "security.SMACK64IPIN", "security.SMACK64IPOUT", "security.SMACK64EXEC", "security.SMACK64MMAP" |
| |
| setxattr$security_smack_transmute(path ptr[in, filename], name ptr[in, string["security.SMACK64TRANSMUTE"]], val ptr[in, stringnoz["TRUE"]], size len[val], flags flags[setxattr_flags]) |
| lsetxattr$security_smack_transmute(path ptr[in, filename], name ptr[in, string["security.SMACK64TRANSMUTE"]], val ptr[in, stringnoz["TRUE"]], size len[val], flags flags[setxattr_flags]) |
| fsetxattr$security_smack_transmute(fd fd, name ptr[in, string["security.SMACK64TRANSMUTE"]], val ptr[in, stringnoz["TRUE"]], size len[val], flags flags[setxattr_flags]) |