Function report | 
Source Code:security\selinux\avc.c | 
Create Date:2022-07-28 18:43:58 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:avc_update_node Update an AVC entry*@event : Updating event*@perms : Permission mask bits*@ssid,@tsid,@tclass : identifier of an AVC entry*@seqno : sequence number when decision was made*@xpd: extended_perms_decision to be added to the node
Proto:static int avc_update_node(struct selinux_avc *avc, unsigned int event, unsigned int perms, u8 driver, u8 xperm, unsigned int ssid, unsigned int tsid, u16 tclass, unsigned int seqno, struct extended_perms_decision *xpd, unsigned int flags)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct selinux_avc * | avc | |
| unsigned int | event | |
| unsigned int | perms | |
| u8 | driver | |
| u8 | xperm | |
| unsigned int | ssid | |
| unsigned int | tsid | |
| u16 | tclass | |
| unsigned int | seqno | |
| struct extended_perms_decision * | xpd | |
| unsigned int | flags | 
| 834 | rc = 0 | 
| 855 | node = avc_alloc_node(avc) | 
| 856 | If Not node Then | 
| 864 | head = head for avc_node->list [hvalue] | 
| 865 | lock = lock for writes [hvalue] | 
| 867 | spin_lock_irqsave(lock, flag) | 
| 879 | If Not orig Then | 
| 891 | If xp_node Then | 
| 892 | rc = avc_xperms_populate(node, xp_node) | 
| 893 | If rc Then | 
| 894 | avc_node_kill(avc, node) | 
| 895 | Go to out_unlock | 
| 900 | Case event == AVC_CALLBACK_GRANT | 
| 902 | If xp_node && flags & update extended permissions Then avc_xperms_allow_perm(xp_node, driver, xperm) | 
| 904 | Break | 
| 905 | Case event == AVC_CALLBACK_TRY_REVOKE | 
| 906 | Case event == AVC_CALLBACK_REVOKE | 
| 909 | Case event == AVC_CALLBACK_AUDITALLOW_ENABLE | 
| 910 | auditallow |= perms | 
| 911 | Break | 
| 912 | Case event == AVC_CALLBACK_AUDITALLOW_DISABLE | 
| 913 | auditallow &= ~perms | 
| 914 | Break | 
| 915 | Case event == AVC_CALLBACK_AUDITDENY_ENABLE | 
| 918 | Case event == AVC_CALLBACK_AUDITDENY_DISABLE | 
| 921 | Case event == AVC_CALLBACK_ADD_XPERMS | 
| 922 | avc_add_xperms_decision(node, xpd) | 
| 923 | Break | 
| 925 | avc_node_replace(avc, node, orig) | 
| 926 | out_unlock : | 
| 927 | spin_unlock_irqrestore(lock, flag) | 
| 928 | out : | 
| 929 | Return rc | 
| Name | Describe | 
|---|---|
| avc_denied | |
| avc_has_extended_perms | The avc extended permissions logic adds an additional 256 bits of* permissions to an avc node when extended permissions for that node are* specified in the avtab | 
| 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  |