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