LCOV - code coverage report
Current view: top level - fs/ext4 - xattr_security.c (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc4-xfsa @ Mon Jul 31 20:08:27 PDT 2023 Lines: 0 6 0.0 %
Date: 2023-07-31 20:08:27 Functions: 0 3 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * linux/fs/ext4/xattr_security.c
       4             :  * Handler for storing security labels as extended attributes.
       5             :  */
       6             : 
       7             : #include <linux/string.h>
       8             : #include <linux/fs.h>
       9             : #include <linux/security.h>
      10             : #include <linux/slab.h>
      11             : #include "ext4_jbd2.h"
      12             : #include "ext4.h"
      13             : #include "xattr.h"
      14             : 
      15             : static int
      16           0 : ext4_xattr_security_get(const struct xattr_handler *handler,
      17             :                         struct dentry *unused, struct inode *inode,
      18             :                         const char *name, void *buffer, size_t size)
      19             : {
      20           0 :         return ext4_xattr_get(inode, EXT4_XATTR_INDEX_SECURITY,
      21             :                               name, buffer, size);
      22             : }
      23             : 
      24             : static int
      25           0 : ext4_xattr_security_set(const struct xattr_handler *handler,
      26             :                         struct mnt_idmap *idmap,
      27             :                         struct dentry *unused, struct inode *inode,
      28             :                         const char *name, const void *value,
      29             :                         size_t size, int flags)
      30             : {
      31           0 :         return ext4_xattr_set(inode, EXT4_XATTR_INDEX_SECURITY,
      32             :                               name, value, size, flags);
      33             : }
      34             : 
      35             : static int
      36             : ext4_initxattrs(struct inode *inode, const struct xattr *xattr_array,
      37             :                 void *fs_info)
      38             : {
      39             :         const struct xattr *xattr;
      40             :         handle_t *handle = fs_info;
      41             :         int err = 0;
      42             : 
      43             :         for (xattr = xattr_array; xattr->name != NULL; xattr++) {
      44             :                 err = ext4_xattr_set_handle(handle, inode,
      45             :                                             EXT4_XATTR_INDEX_SECURITY,
      46             :                                             xattr->name, xattr->value,
      47             :                                             xattr->value_len, XATTR_CREATE);
      48             :                 if (err < 0)
      49             :                         break;
      50             :         }
      51             :         return err;
      52             : }
      53             : 
      54             : int
      55           0 : ext4_init_security(handle_t *handle, struct inode *inode, struct inode *dir,
      56             :                    const struct qstr *qstr)
      57             : {
      58           0 :         return security_inode_init_security(inode, dir, qstr,
      59             :                                             &ext4_initxattrs, handle);
      60             : }
      61             : 
      62             : const struct xattr_handler ext4_xattr_security_handler = {
      63             :         .prefix = XATTR_SECURITY_PREFIX,
      64             :         .get    = ext4_xattr_security_get,
      65             :         .set    = ext4_xattr_security_set,
      66             : };

Generated by: LCOV version 1.14