ext2文件系统源代码之xattr_security.c
来源:互联网 发布:数据库市场占有率 2016 编辑:程序博客网 时间:2024/06/05 09:13
继续看ext2文件系统源代码里的最后一些文件,不过最主要的代码我们已经解决了,接下来的就是一些细小的事情了,我们来看xattr_security.c吧。
/* * linux/fs/ext2/xattr_security.c * 存储security的扩展属性处理函数 */#include <linux/module.h>#include <linux/string.h>#include <linux/fs.h>#include <linux/ext2_fs.h>#include <linux/security.h>#include "xattr.h"/*完全的安全属性字符串,返回list字符串长度*/static size_text2_xattr_security_list(struct inode *inode, char *list, size_t list_size, const char *name, size_t name_len){/*安全属性名前缀长度,一般是"security."*/const int prefix_len = sizeof(XATTR_SECURITY_PREFIX)-1;/*全部长度*/const size_t total_len = prefix_len + name_len + 1;if (list && total_len <= list_size) {/*先复制前缀,再复制name*/memcpy(list, XATTR_SECURITY_PREFIX, prefix_len);memcpy(list+prefix_len, name, name_len);list[prefix_len + name_len] = '\0';}return total_len;}/*得到名字为name的属性*/static intext2_xattr_security_get(struct inode *inode, const char *name, void *buffer, size_t size){/*参数检查,是不是空的*/if (strcmp(name, "") == 0)return -EINVAL;/*之前讲过的函数*/return ext2_xattr_get(inode, EXT2_XATTR_INDEX_SECURITY, name, buffer, size);}static intext2_xattr_security_set(struct inode *inode, const char *name, const void *value, size_t size, int flags){/*参数检查*/if (strcmp(name, "") == 0)return -EINVAL;/*之前讲过的设置属性的函数*/return ext2_xattr_set(inode, EXT2_XATTR_INDEX_SECURITY, name, value, size, flags);}/*安全属性初始化函数*/intext2_init_security(struct inode *inode, struct inode *dir){int err;size_t len;void *value;char *name;/*内核配置的安全操作,就是出事哈U后三个值*/err = security_inode_init_security(inode, dir, &name, &value, &len);if (err) {if (err == -EOPNOTSUPP)return 0;return err;}/*刚得到的变量来设置对应的属性*/err = ext2_xattr_set(inode, EXT2_XATTR_INDEX_SECURITY, name, value, len, 0);kfree(name);kfree(value);return err;}/*security对应的xattr_handler*/struct xattr_handler ext2_xattr_security_handler = {.prefix= XATTR_SECURITY_PREFIX,.list= ext2_xattr_security_list,.get= ext2_xattr_security_get,.set= ext2_xattr_security_set,};
0 0
- ext2文件系统源代码之xattr_security.c
- ext2文件系统源代码之acl.c
- ext2文件系统源代码之dir.c
- ext2文件系统源代码之file.c
- ext2文件系统源代码之fsync.c
- ext2文件系统源代码之ialloc.c
- ext2文件系统源代码之inode.c
- ext2文件系统源代码之ioctl.c
- ext2文件系统源代码之namei.c
- ext2文件系统源代码之super.c
- ext2文件系统源代码之symlink.c
- ext2文件系统源代码之xattr.c
- ext2文件系统源代码之xattr_trusted.c
- ext2文件系统源代码之xattr_user.c
- ext2文件系统源代码之ext2.h
- ext2文件系统源代码之Makefile
- ext2文件系统源代码之balloc.c文件解析
- ext2文件系统之ext2_lookup函数源代码分析
- ext2文件系统源代码之xattr_user.c
- 把本地的int类型的图片转换成drawable、Bitmap
- 第一遍 第二章算法
- 在Editplus配置PHP
- Bzoj3791:作业:DP
- ext2文件系统源代码之xattr_security.c
- Http协议访问DataSnap Rest 服务器 - 封三郎
- sizeof
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter7-32
- Spark 性能相关参数配置详解-Storage篇
- RTSP实例解析
- 遗传算法学习心得
- 第一遍 第三章线性表
- 开始启程,你的第一行