Function report | 
Source Code:security\smack\smack_lsm.c | 
Create Date:2022-07-28 19:23:59 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:smack_socket_sock_rcv_skb - Smack packet delivery access check*@sk: socket*@skb: packet* Returns 0 if the packet should be delivered, an error code otherwise
Proto:static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct sock * | sk | |
| struct sk_buff * | skb | 
| 3844 | ssp = sk_security | 
| 3845 | struct smack_known * skp = NULL | 
| 3846 | rc = 0 | 
| 3869 | skp = smack_from_secid(secmark) | 
| 3870 | Go to access_check | 
| 3878 | rc = netlbl_skbuff_getattr(skb, family, & secattr) | 
| 3881 | Else skp = smack_net_ambient | 
| 3887 | access_check : | 
| 3890 | smk_ad_init_net( & ad, __func__, LSM_AUDIT_DATA_NET, & net) | 
| 3901 | rc = smk_access(skp, inbound label , MAY_WRITE, & ad) | 
| 3902 | rc = smk_bu_note("IPv4 delivery", skp, inbound label , MAY_WRITE, rc) | 
| 3904 | If rc != 0 Then netlbl_skbuff_err(skb, family, rc, 0) | 
| 3906 | Break | 
| 3909 | proto = smk_skb_to_addr_ipv6(skb, & sadd) | 
| 3910 | If proto != IPPROTO_UDP && proto != IPPROTO_UDPLITE && proto != IPPROTO_TCP && proto != IPPROTO_DCCP Then Break | 
| 3914 | If skb && secmark != 0 Then skp = smack_from_secid(secmark) | 
| 3916 | Else if smk_ipv6_localhost - Check for local ipv6 host address*@sip: the address* Returns boolean true if this is the localhost address Then Break | 
| 3920 | If (skp == NULL) Then skp = smack_net_ambient | 
| 3922 | If (skb == NULL) Then Break | 
| 3925 | smk_ad_init_net( & ad, __func__, LSM_AUDIT_DATA_NET, & net) | 
| 3928 | ipv6_skb_to_auditdata(skb, & a, NULL) | 
| 3930 | rc = smk_access(skp, inbound label , MAY_WRITE, & ad) | 
| 3931 | rc = smk_bu_note("IPv6 delivery", skp, inbound label , MAY_WRITE, rc) | 
| 3935 | rc = smk_ipv6_port_check - check Smack port access*@sk: socket*@address: address*@act: the action being taken* Create or update the port list entry | 
| 3937 | If rc != 0 Then icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADM_PROHIBITED, 0) | 
| 3940 | Break | 
| 3944 | Return rc | 
| 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  |