| /linux-6.15/security/integrity/evm/ |
| H A D | evm_secfs.c | 133 struct xattr_list *xattr; in evm_read_xattrs() local 143 if (!xattr->enabled) in evm_read_xattrs() 156 if (!xattr->enabled) in evm_read_xattrs() 204 if (!xattr) { in evm_write_xattrs() 209 xattr->enabled = true; in evm_write_xattrs() 211 if (IS_ERR(xattr->name)) { in evm_write_xattrs() 213 xattr->name = NULL; in evm_write_xattrs() 218 len = strlen(xattr->name); in evm_write_xattrs() 273 if (xattr) { in evm_write_xattrs() 274 kfree(xattr->name); in evm_write_xattrs() [all …]
|
| H A D | evm_crypto.c | 228 struct xattr_list *xattr; in evm_calc_hmac_or_hash() local 251 if (strcmp(xattr->name, XATTR_NAME_IMA) == 0) in evm_calc_hmac_or_hash() 262 && !strcmp(xattr->name, req_xattr_name)) { in evm_calc_hmac_or_hash() 284 xattr->name, NULL, 0); in evm_calc_hmac_or_hash() 287 dentry->d_name.name, xattr->name, size, in evm_calc_hmac_or_hash() 388 data.hdr.xattr.sha1.type = EVM_XATTR_HMAC; in evm_update_evmxattr() 391 &data.hdr.xattr.data[1], in evm_update_evmxattr() 403 const struct xattr *xattr; in evm_init_hmac() local 411 for (xattr = xattrs; xattr->name; xattr++) { in evm_init_hmac() 412 if (!evm_protected_xattr(xattr->name)) in evm_init_hmac() [all …]
|
| H A D | evm_main.c | 134 struct xattr_list *xattr; in evm_find_protected_xattrs() local 304 struct xattr_list *xattr; in evm_protected_xattr_common() local 308 if (!all_xattrs && !xattr->enabled) in evm_protected_xattr_common() 311 if ((strlen(xattr->name) == namelen) in evm_protected_xattr_common() 354 struct xattr_list *xattr; in evm_read_protected_xattrs() local 359 xattr->name, NULL, 0); in evm_read_protected_xattrs() 367 size = strlen(xattr->name) + 1; in evm_read_protected_xattrs() 1018 struct xattr *xattr, *evm_xattr; in evm_inode_init_security() local 1030 for (xattr = xattrs; xattr->name; xattr++) { in evm_inode_init_security() 1031 if (evm_protected_xattr(xattr->name)) in evm_inode_init_security() [all …]
|
| H A D | evm_posix_acl.c | 12 int posix_xattr_acl(const char *xattr) in posix_xattr_acl() argument 14 int xattr_len = strlen(xattr); in posix_xattr_acl() 17 && (strncmp(XATTR_NAME_POSIX_ACL_ACCESS, xattr, xattr_len) == 0)) in posix_xattr_acl() 20 && (strncmp(XATTR_NAME_POSIX_ACL_DEFAULT, xattr, xattr_len) == 0)) in posix_xattr_acl()
|
| /linux-6.15/fs/ceph/ |
| H A D | xattr.c | 616 if (xattr) in __set_xattr() 624 if (!xattr) { in __set_xattr() 685 c = strncmp(name, xattr->name, xattr->name_len); in __get_xattr() 715 kfree(xattr); in __free_xattr() 721 if (!xattr) in __remove_xattr() 751 memcpy(dest, xattr->name, xattr->name_len); in __copy_xattr_names() 930 memcpy(dest, xattr->name, xattr->name_len); in __ceph_build_xattrs_blob() 933 memcpy(dest, xattr->val, xattr->val_len); in __ceph_build_xattrs_blob() 1043 if (!xattr) in __ceph_getxattr() 1054 memcpy(value, xattr->val, xattr->val_len); in __ceph_getxattr() [all …]
|
| /linux-6.15/fs/hfsplus/ |
| H A D | xattr_security.c | 37 const struct xattr *xattr_array, in hfsplus_initxattrs() 40 const struct xattr *xattr; in hfsplus_initxattrs() local 48 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in hfsplus_initxattrs() 50 if (!strcmp(xattr->name, "")) in hfsplus_initxattrs() 55 XATTR_SECURITY_PREFIX_LEN, xattr->name); in hfsplus_initxattrs() 57 XATTR_SECURITY_PREFIX_LEN + strlen(xattr->name), 0, 1); in hfsplus_initxattrs() 60 xattr->value, xattr->value_len, 0); in hfsplus_initxattrs()
|
| /linux-6.15/fs/bcachefs/ |
| H A D | xattr.c | 99 bkey_fsck_err_on(memchr(xattr.v->x_name, '\0', xattr.v->x_name_len), in bch2_xattr_validate() 129 name_len, xattr.v->x_name, in bch2_xattr_to_text() 188 struct bkey_i_xattr *xattr; in bch2_xattr_set() local 197 if (IS_ERR(xattr)) in bch2_xattr_set() 198 return PTR_ERR(xattr); in bch2_xattr_set() 200 bkey_xattr_init(&xattr->k_i); in bch2_xattr_set() 201 xattr->k.u64s = u64s; in bch2_xattr_set() 202 xattr->v.x_type = type; in bch2_xattr_set() 203 xattr->v.x_name_len = namelen; in bch2_xattr_set() 209 inum, &xattr->k_i, in bch2_xattr_set() [all …]
|
| H A D | acl.c | 195 struct bkey_i_xattr *xattr; in bch2_acl_to_xattr() local 225 if (IS_ERR(xattr)) in bch2_acl_to_xattr() 226 return xattr; in bch2_acl_to_xattr() 228 bkey_xattr_init(&xattr->k_i); in bch2_acl_to_xattr() 229 xattr->k.u64s = u64s; in bch2_acl_to_xattr() 231 xattr->v.x_name_len = 0; in bch2_acl_to_xattr() 267 return xattr; in bch2_acl_to_xattr() 323 struct bkey_i_xattr *xattr = in bch2_set_acl_trans() local 325 if (IS_ERR(xattr)) in bch2_set_acl_trans() 326 return PTR_ERR(xattr); in bch2_set_acl_trans() [all …]
|
| /linux-6.15/fs/jffs2/ |
| H A D | security.c | 27 const struct xattr *xattr_array, void *fs_info) in jffs2_initxattrs() 29 const struct xattr *xattr; in jffs2_initxattrs() local 32 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in jffs2_initxattrs() 34 xattr->name, xattr->value, in jffs2_initxattrs() 35 xattr->value_len, 0); in jffs2_initxattrs()
|
| /linux-6.15/fs/ext2/ |
| H A D | xattr_security.c | 31 static int ext2_initxattrs(struct inode *inode, const struct xattr *xattr_array, in ext2_initxattrs() 34 const struct xattr *xattr; in ext2_initxattrs() local 37 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in ext2_initxattrs() 39 xattr->name, xattr->value, in ext2_initxattrs() 40 xattr->value_len, 0); in ext2_initxattrs()
|
| /linux-6.15/fs/ext4/ |
| H A D | xattr_security.c | 36 ext4_initxattrs(struct inode *inode, const struct xattr *xattr_array, in ext4_initxattrs() 39 const struct xattr *xattr; in ext4_initxattrs() local 43 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in ext4_initxattrs() 46 xattr->name, xattr->value, in ext4_initxattrs() 47 xattr->value_len, XATTR_CREATE); in ext4_initxattrs()
|
| /linux-6.15/fs/jfs/ |
| H A D | xattr.c | 447 ea_buf->xattr = NULL; in ea_get() 490 if (ea_buf->xattr == NULL) in ea_get() 499 kfree(ea_buf->xattr); in ea_get() 500 ea_buf->xattr = NULL; in ea_get() 536 ea_buf->xattr = ea_buf->mp->data; in ea_get() 556 ea_buf->xattr = ea_buf->mp->data; in ea_get() 590 kfree(ea_buf->xattr); in ea_release() 620 kfree(ea_buf->xattr); in ea_put() 1025 const struct xattr *xattr; in jfs_initxattrs() local 1030 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in jfs_initxattrs() [all …]
|
| /linux-6.15/Documentation/translations/zh_CN/security/ |
| H A D | IMA-templates.rst | 72 - 'xattrnames':xattr名称的列表(由``|``分隔),仅当xattr存在时; 73 - 'xattrlengths':xattr长度的列表(u32),仅当xattr存在时; 74 - 'xattrvalues':xattr值的列表;
|
| /linux-6.15/fs/squashfs/ |
| H A D | xattr.c | 32 u64 start = SQUASHFS_XATTR_BLK(squashfs_i(inode)->xattr) in squashfs_listxattr() 34 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr); in squashfs_listxattr() 110 u64 start = SQUASHFS_XATTR_BLK(squashfs_i(inode)->xattr) in squashfs_xattr_get() 112 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr); in squashfs_xattr_get() 150 u64 xattr; in squashfs_xattr_get() local 160 xattr = le64_to_cpu(xattr_val); in squashfs_xattr_get() 161 start = SQUASHFS_XATTR_BLK(xattr) + in squashfs_xattr_get() 163 offset = SQUASHFS_XATTR_OFFSET(xattr); in squashfs_xattr_get()
|
| H A D | inode.c | 200 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 254 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 297 __le32 xattr; in squashfs_read_inode() local 303 err = squashfs_read_metadata(sb, &xattr, &block, in squashfs_read_inode() 304 &offset, sizeof(xattr)); in squashfs_read_inode() 307 xattr_id = le32_to_cpu(xattr); in squashfs_read_inode() 351 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 391 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 406 &squashfs_i(inode)->xattr); in squashfs_read_inode()
|
| H A D | xattr_id.c | 29 int *count, unsigned int *size, unsigned long long *xattr) in squashfs_xattr_lookup() argument 48 *xattr = le64_to_cpu(id.xattr); in squashfs_xattr_lookup()
|
| H A D | squashfs_fs.h | 296 __le32 xattr; member 319 __le32 xattr; member 361 __le32 xattr; member 392 __le32 xattr; member 441 __le64 xattr; member
|
| /linux-6.15/fs/ |
| H A D | xattr.c | 1212 if (xattr) in simple_xattr_free() 1213 kfree(xattr->name); in simple_xattr_free() 1214 kvfree(xattr); in simple_xattr_free() 1279 struct simple_xattr *xattr; in rbtree_simple_xattr_node_cmp() local 1310 ret = xattr->size; in simple_xattr_get() 1312 if (size < xattr->size) in simple_xattr_get() 1315 memcpy(buffer, xattr->value, xattr->size); in simple_xattr_get() 1463 struct simple_xattr *xattr; in simple_xattr_list() local 1565 struct simple_xattr *xattr; in simple_xattrs_free() local 1573 xattr->size); in simple_xattrs_free() [all …]
|
| /linux-6.15/fs/btrfs/ |
| H A D | xattr.c | 499 const struct xattr *xattr_array, void *fs_private) in btrfs_initxattrs() 502 const struct xattr *xattr; in btrfs_initxattrs() local 512 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in btrfs_initxattrs() 514 strlen(xattr->name) + 1, GFP_KERNEL); in btrfs_initxattrs() 520 strcpy(name + XATTR_SECURITY_PREFIX_LEN, xattr->name); in btrfs_initxattrs() 525 ret = btrfs_setxattr(trans, inode, name, xattr->value, in btrfs_initxattrs() 526 xattr->value_len, 0); in btrfs_initxattrs()
|
| /linux-6.15/fs/ubifs/ |
| H A D | xattr.c | 113 ui->xattr = 1; in create_xattr() 243 if (ubifs_inode(inode)->xattr) in iget_xattr() 525 ubifs_assert(c, ubifs_inode(xino)->xattr); in ubifs_purge_xattrs() 605 static int init_xattrs(struct inode *inode, const struct xattr *xattr_array, in init_xattrs() 608 const struct xattr *xattr; in init_xattrs() local 612 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in init_xattrs() 614 strlen(xattr->name) + 1, GFP_NOFS); in init_xattrs() 620 strcpy(name + XATTR_SECURITY_PREFIX_LEN, xattr->name); in init_xattrs() 625 err = ubifs_xattr_set(inode, name, xattr->value, in init_xattrs() 626 xattr->value_len, 0, false); in init_xattrs()
|
| /linux-6.15/Documentation/filesystems/ |
| H A D | erofs.rst | 107 (no)user_xattr Setup Extended User Attributes. Note: xattr is enabled 228 Each share xattr can also be directly found by the following formula: 229 xattr offset = xattr_blkaddr * block_size + 4 * xattr_id 236 | ... | xattr_entry | xattr data | ... | xattr_entry | xattr data ... 284 overall idea is that, apart from the existing predefined prefixes, the xattr 285 entry could also refer to user-specified long xattr name prefixes, e.g. 288 When referring to a long xattr name prefix, the highest bit (bit 7) of 293 the full xattr name matches exactly as its long xattr name prefix. 295 All long xattr prefixes are stored one by one in the packed inode as long as 298 long xattr name prefixes, while (xattr_prefix_start * 4) indicates the start [all …]
|
| H A D | squashfs.rst | 154 | xattr | 161 xattr tables are written. 278 The xattr table contains extended attributes for each inode. The xattrs 280 name and value field. The type field encodes the xattr prefix 283 is stored inline (in which case the value field contains the xattr value), 290 The xattr lists are packed into compressed 8K metadata blocks. 292 location of the xattr list inside each inode, a 32-bit xattr id 293 is stored. This xattr id is mapped into the location of the xattr 294 list using a second xattr id lookup table.
|
| /linux-6.15/include/linux/ |
| H A D | evm.h | 22 const struct qstr *qstr, struct xattr *xattrs, 58 struct xattr *xattrs, in evm_inode_init_security()
|
| H A D | lsm_hooks.h | 186 static inline struct xattr *lsm_get_xattr_slot(struct xattr *xattrs, in lsm_get_xattr_slot()
|
| /linux-6.15/fs/f2fs/ |
| H A D | xattr.c | 138 static int f2fs_initxattrs(struct inode *inode, const struct xattr *xattr_array, in f2fs_initxattrs() 141 const struct xattr *xattr; in f2fs_initxattrs() local 144 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in f2fs_initxattrs() 146 xattr->name, xattr->value, in f2fs_initxattrs() 147 xattr->value_len, (struct page *)page, 0); in f2fs_initxattrs()
|