函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:security\device_cgroup.c Create Date:2022-07-27 21:52:28
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Modify the exception list using allow/deny rules

函数原型:static int devcgroup_update_access(struct dev_cgroup *devcgroup, int filetype, char *buffer)

返回类型:int

参数:

类型参数名称
struct dev_cgroup *devcgroup
intfiletype
char *buffer
600  rc等于0
602  parent等于css_to_devcgroup(PI: the parent css. Placed here for cache proximity to following* fields of the containing structure.)
604  如果非操作权限检查则返回:负EPERM
607  memset( & ex, 0, ex的长度)
608  b等于buffer
611  :b恒等于'a'
613  :filetype恒等于DEVCG_ALLOW
621  如果非parent退出
626  如果rc则返回:rc
628  退出
629  :filetype恒等于DEVCG_DENY
635  退出
636  默认
637  返回:负EINVAL
639  返回:0
640  :b恒等于'b'
641  type等于DEVCG_DEV_BLOCK
642  退出
643  :b恒等于'c'
644  type等于DEVCG_DEV_CHAR
645  退出
646  默认
647  返回:负EINVAL
649  b自加
650  如果非Note: isspace() must return false for %NUL-terminator ( * b)则返回:负EINVAL
652  b自加
653  如果b恒等于'*'则
654  major等于0的反
655  b自加
656  否则如果是数字
657  memset(temp, 0, temp的长度)
658 count小于temp的长度减1循环
659  temp[count]等于b
660  b自加
661  如果非是数字退出
664  rc等于kstrtou32(temp, 10, & major)
665  如果rc则返回:负EINVAL
667  否则
668  返回:负EINVAL
670  如果b不等于':'则返回:负EINVAL
672  b自加
675  如果b恒等于'*'则
676  minor等于0的反
677  b自加
678  否则如果是数字
679  memset(temp, 0, temp的长度)
680 count小于temp的长度减1循环
681  temp[count]等于b
682  b自加
683  如果非是数字退出
686  rc等于kstrtou32(temp, 10, & minor)
687  如果rc则返回:负EINVAL
689  否则
690  返回:负EINVAL
692  如果非Note: isspace() must return false for %NUL-terminator ( * b)则返回:负EINVAL
694 count小于3循环
696  :b恒等于'r'
697  access或等于DEVCG_ACC_READ
698  退出
699  :b恒等于'w'
700  access或等于DEVCG_ACC_WRITE
701  退出
702  :b恒等于'm'
703  access或等于DEVCG_ACC_MKNOD
704  退出
705  :b恒等于'\n'
706  :b恒等于'\0'
707  count等于3
708  退出
709  默认
710  返回:负EINVAL
715  :filetype恒等于DEVCG_ALLOW
733  :filetype恒等于DEVCG_DENY
749  默认
750  rc等于负EINVAL
752  返回:rc
调用者
名称描述
devcgroup_access_write