Function report | 
Source Code:security\device_cgroup.c | 
Create Date:2022-07-28 19:55:51 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:Modify the exception list using allow/deny rules
Proto:static int devcgroup_update_access(struct dev_cgroup *devcgroup, int filetype, char *buffer)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct dev_cgroup * | devcgroup | |
| int | filetype | |
| 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 | If Not Check operation authority Then Return -EPERM | 
| 611 | Case b == 'a' | 
| 613 | Case filetype == DEVCG_ALLOW | 
| 620 | behavior = DEVCG_DEFAULT_ALLOW | 
| 621 | If Not parent Then Break | 
| 628 | Break | 
| 629 | Case filetype == DEVCG_DENY | 
| 634 | behavior = DEVCG_DEFAULT_DENY | 
| 635 | Break | 
| 636 | Default | 
| 637 | Return -EINVAL | 
| 639 | Return 0 | 
| 640 | Case b == 'b' | 
| 641 | type = DEVCG_DEV_BLOCK | 
| 642 | Break | 
| 643 | Case b == 'c' | 
| 644 | type = DEVCG_DEV_CHAR | 
| 645 | Break | 
| 646 | Default | 
| 647 | Return -EINVAL | 
| 649 | b++ | 
| 650 | If Not Note: isspace() must return false for %NUL-terminator ( * b) Then Return -EINVAL | 
| 652 | b++ | 
| 653 | If b == '*' Then | 
| 667 | Else | 
| 668 | Return -EINVAL | 
| 672 | b++ | 
| 675 | If b == '*' Then | 
| 689 | Else | 
| 690 | Return -EINVAL | 
| 692 | If Not Note: isspace() must return false for %NUL-terminator ( * b) Then Return -EINVAL | 
| 696 | Case b == 'r' | 
| 697 | access |= DEVCG_ACC_READ | 
| 698 | Break | 
| 699 | Case b == 'w' | 
| 700 | access |= DEVCG_ACC_WRITE | 
| 701 | Break | 
| 702 | Case b == 'm' | 
| 703 | access |= DEVCG_ACC_MKNOD | 
| 704 | Break | 
| 705 | Case b == '\n' | 
| 706 | Case b == '\0' | 
| 707 | count = 3 | 
| 708 | Break | 
| 709 | Default | 
| 710 | Return -EINVAL | 
| 715 | Case filetype == DEVCG_ALLOW | 
| 721 | If behavior == DEVCG_DEFAULT_ALLOW Then | 
| 726 | Break | 
| 729 | If Not parent_has_perm:* when adding a new allow rule to a device exception list, the rule* must be allowed in the parent device Then Return -EPERM | 
| 732 | Break | 
| 733 | Case filetype == DEVCG_DENY | 
| 739 | If behavior == DEVCG_DEFAULT_DENY Then alled under devcgroup_mutex | 
| 741 | Else rc = alled under devcgroup_mutex | 
| 744 | If rc Then Break | 
| 748 | Break | 
| 749 | Default | 
| 752 | Return rc | 
| Name | Describe | 
|---|---|
| devcgroup_access_write | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |