Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:security\smack\smack_lsm.c Create Date:2022-07-28 19:22:29
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:smk_ipv6_port_check - check Smack port access*@sk: socket*@address: address*@act: the action being taken* Create or update the port list entry

Proto:static int smk_ipv6_port_check(struct sock *sk, struct sockaddr_in6 *address, int act)

Type:int

Parameter:

TypeParameterName
struct sock *sk
struct sockaddr_in6 *address
intact
2620  ssp = sk_security
2621  struct smack_known * skp = NULL
2625  If act == SMK_RECEIVING Then
2626  skp = smack_ipv6host_label - check host based restrictions*@sip: the object end* looks for host based access restrictions* This version will only be appropriate for really small sets of single label* hosts
2627  object = inbound label
2628  Else
2629  skp = outbound label
2630  object = smack_ipv6host_label - check host based restrictions*@sip: the object end* looks for host based access restrictions* This version will only be appropriate for really small sets of single label* hosts
2636  If (skp != NULL && object != NULL) Then Return smk_ipv6_check - check Smack access*@subject: subject Smack label*@object: object Smack label*@address: address*@act: the action being taken* Check an IPv6 access
2638  If (skp == NULL) Then skp = smack_net_ambient
2640  If (object == NULL) Then object = smack_net_ambient
2646  If Not smk_ipv6_localhost - Check for local ipv6 host address*@sip: the address* Returns boolean true if this is the localhost address Then Return smk_ipv6_check - check Smack access*@subject: subject Smack label*@object: object Smack label*@address: address*@act: the action being taken* Check an IPv6 access
2652  If act == SMK_RECEIVING Then Return 0
2655  port = ntohs( Transport layer port # )
2656  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
2658  If he port number != port || Socket type != sk_type Then Continue
2660  object = bound label
2661  If act == SMK_CONNECTING Then TCP peer label = utgoing label
2663  Break
2665  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
2667  Return smk_ipv6_check - check Smack access*@subject: subject Smack label*@object: object Smack label*@address: address*@act: the action being taken* Check an IPv6 access
Caller
NameDescribe
smack_socket_connectsmack_socket_connect - connect access check*@sock: the socket*@sap: the other end*@addrlen: size of sap* Verifies that a connection may be possible* Returns 0 on success, and error code otherwise
smack_socket_sendmsgsmack_socket_sendmsg - Smack check based on destination host*@sock: the socket*@msg: the message*@size: the size of the message* Return 0 if the current subject can write to the destination host.
smack_socket_sock_rcv_skbsmack_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