Function report |
Source Code:security\smack\smack_lsm.c |
Create Date:2022-07-28 19:23:17 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:smack_d_instantiate - Make sure the blob is correct on an inode*@opt_dentry: dentry where inode will be attached*@inode: the object* Set the inode's security blob if it hasn't been done already.
Proto:static void smack_d_instantiate(struct dentry *opt_dentry, struct inode *inode)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct dentry * | opt_dentry | |
| struct inode * | inode |
| 3272 | transflag = 0 |
| 3276 | If (inode == NULL) Then Return |
| 3279 | isp = smack_inode(inode) |
| 3281 | mutex_lock( & itialization lock ) |
| 3286 | If smack inode flags & de is instantiated Then Go to unlockandout |
| 3290 | sbsp = s_security |
| 3295 | final = smk_default |
| 3303 | If parent directory == opt_dentry Then |
| 3305 | Case s_magic == CGROUP_SUPER_MAGIC |
| 3306 | Case s_magic == CGROUP2_SUPER_MAGIC |
| 3312 | smk_root = smack_known_star |
| 3313 | smk_default = smack_known_star |
| 3314 | label of the fso = smk_root |
| 3315 | Break |
| 3316 | Case s_magic == TMPFS_MAGIC |
| 3323 | Case s_magic == PIPEFS_MAGIC |
| 3326 | Case s_magic == SOCKFS_MAGIC |
| 3331 | label of the fso = smack_known_star |
| 3332 | Break |
| 3333 | Default |
| 3334 | label of the fso = smk_root |
| 3335 | Break |
| 3337 | smack inode flags |= de is instantiated |
| 3338 | Go to unlockandout |
| 3349 | Case s_magic == CGROUP_SUPER_MAGIC |
| 3350 | Case s_magic == CGROUP2_SUPER_MAGIC |
| 3358 | final = smack_known_star |
| 3359 | Break |
| 3360 | Case s_magic == DEVPTS_SUPER_MAGIC |
| 3368 | Case s_magic == PROC_SUPER_MAGIC |
| 3373 | Break |
| 3374 | Case s_magic == TMPFS_MAGIC |
| 3380 | final = smack_known_star |
| 3388 | Default |
| 3398 | final = smack_known_star |
| 3399 | Break |
| 3412 | dp = get a reference to a dentry |
| 3414 | If Not IS_ERR_OR_NULL(skp) Then final = skp |
| 3430 | If smack inode flags & smack was transmuted Then |
| 3431 | smack inode flags &= ~smack was transmuted |
| 3432 | rc = __vfs_setxattr(dp, inode, XATTR_NAME_SMACKTRANSMUTE, TRANS_TRUE, TRANS_TRUE_SIZE, 0) |
| 3436 | Else |
| 3437 | rc = __vfs_getxattr(dp, inode, XATTR_NAME_SMACKTRANSMUTE, trattr, TRANS_TRUE_SIZE) |
| 3440 | If rc >= 0 && strncmp(trattr, TRANS_TRUE, TRANS_TRUE_SIZE) != 0 Then rc = -EINVAL |
| 3444 | If rc >= 0 Then transflag = directory is transmuting |
| 3451 | If IS_ERR(skp) || skp == smack_known_star || skp == smack_known_web Then skp = NULL |
| 3454 | label of the task = skp |
| 3457 | If IS_ERR(skp) || skp == smack_known_star || skp == smack_known_web Then skp = NULL |
| 3460 | label of the mmap domain = skp |
| 3463 | Break |
| 3466 | If (final == NULL) Then label of the fso = ckp |
| 3468 | Else label of the fso = final |
| 3471 | smack inode flags |= de is instantiated | transflag |
| 3473 | unlockandout : |
| 3475 | Return |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |