函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |