函数逻辑报告 |
Source Code:fs\open.c |
Create Date:2022-07-29 10:30:58 |
Last Modify:2020-03-18 10:16:03 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:access() needs to use the real uid/gid, not the effective uid/gid.* We do this by temporarily clearing all FS-related capabilities and* switching the fsuid/fsgid around to the real ones.
函数原型:long do_faccessat(int dfd, const char __user *filename, int mode)
返回类型:long
参数:
类型 | 参数 | 名称 |
---|---|---|
int | dfd | |
const char __user * | filename | |
int | mode |
360 | override_cred等于prepare_creds - Prepare a new set of credentials for modification* Prepare a new set of task credentials for modification |
361 | 如果非override_cred则返回:负ENOMEM |
364 | UID for VFS ops 等于进程uid |
365 | GID for VFS ops 等于进程gid |
370 | 如果非uid_eq(进程uid, root_uid)则cap_clear( caps we can actually use ) |
372 | 否则 caps we can actually use 等于 caps we're permitted |
394 | Can we skip RCU deletion? 等于1 |
397 | retry : |
398 | res等于user_path_at(dfd, filename, lookup_flags, & path) |
410 | 如果path_noexec( & path)则转到:out_path_release |
414 | res等于inode_permission(inode, mode | MAY_ACCESS) |
416 | 如果res或非mode按位与S_IWOTH的值或special_file(i_mode)则转到:out_path_release |
428 | 如果__mnt_is_readonly(mnt)则res等于负EROFS |
431 | out_path_release : |
435 | 转到:retry |
437 | out : |
440 | 返回:res |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |