Lines Matching refs:scm
140 static void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
142 UNIXCB(skb).secid = scm->secid; in unix_get_secdata()
145 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
147 scm->secid = UNIXCB(skb).secid; in unix_set_secdata()
150 static inline bool unix_secdata_eq(struct scm_cookie *scm, struct sk_buff *skb) in unix_secdata_eq() argument
152 return (scm->secid == UNIXCB(skb).secid); in unix_secdata_eq()
155 static inline void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
158 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
161 static inline bool unix_secdata_eq(struct scm_cookie *scm, struct sk_buff *skb) in unix_secdata_eq() argument
1616 static void unix_peek_fds(struct scm_cookie *scm, struct sk_buff *skb) in unix_peek_fds() argument
1618 scm->fp = scm_fp_dup(UNIXCB(skb).fp); in unix_peek_fds()
1663 static int unix_scm_to_skb(struct scm_cookie *scm, struct sk_buff *skb, bool send_fds) in unix_scm_to_skb() argument
1667 UNIXCB(skb).pid = get_pid(scm->pid); in unix_scm_to_skb()
1668 UNIXCB(skb).uid = scm->creds.uid; in unix_scm_to_skb()
1669 UNIXCB(skb).gid = scm->creds.gid; in unix_scm_to_skb()
1671 unix_get_secdata(scm, skb); in unix_scm_to_skb()
1672 if (scm->fp && send_fds) in unix_scm_to_skb()
1673 err = unix_attach_fds(scm, skb); in unix_scm_to_skb()
1703 static int maybe_init_creds(struct scm_cookie *scm, in maybe_init_creds() argument
1710 err = scm_send(socket, &msg, scm, false); in maybe_init_creds()
1715 scm->pid = get_pid(task_tgid(current)); in maybe_init_creds()
1716 current_uid_gid(&scm->creds.uid, &scm->creds.gid); in maybe_init_creds()
1722 struct scm_cookie *scm) in unix_skb_scm_eq() argument
1726 return u->pid == scm->pid && in unix_skb_scm_eq()
1727 uid_eq(u->uid, scm->creds.uid) && in unix_skb_scm_eq()
1728 gid_eq(u->gid, scm->creds.gid) && in unix_skb_scm_eq()
1729 unix_secdata_eq(scm, skb); in unix_skb_scm_eq()
1767 struct scm_cookie scm; in unix_dgram_sendmsg() local
1772 err = scm_send(sock, msg, &scm, false); in unix_dgram_sendmsg()
1816 err = unix_scm_to_skb(&scm, skb, true); in unix_dgram_sendmsg()
1949 scm_destroy(&scm); in unix_dgram_sendmsg()
1961 scm_destroy(&scm); in unix_dgram_sendmsg()
1972 struct scm_cookie *scm, bool fds_sent) in queue_oob() argument
1983 err = unix_scm_to_skb(scm, skb, !fds_sent); in queue_oob()
2031 struct scm_cookie scm; in unix_stream_sendmsg() local
2036 err = scm_send(sock, msg, &scm, false); in unix_stream_sendmsg()
2083 err = unix_scm_to_skb(&scm, skb, !fds_sent); in unix_stream_sendmsg()
2115 err = queue_oob(sock, msg, other, &scm, fds_sent); in unix_stream_sendmsg()
2122 scm_destroy(&scm); in unix_stream_sendmsg()
2134 scm_destroy(&scm); in unix_stream_sendmsg()
2144 struct scm_cookie scm; in unix_stream_sendpage() local
2191 err = maybe_init_creds(&scm, socket, other); in unix_stream_sendpage()
2201 } else if (!skb || !unix_skb_scm_eq(skb, &scm)) { in unix_stream_sendpage()
2228 unix_scm_to_skb(&scm, skb, false); in unix_stream_sendpage()
2237 scm_destroy(&scm); in unix_stream_sendpage()
2249 scm_destroy(&scm); in unix_stream_sendpage()
2296 struct scm_cookie scm; in __unix_dgram_recvmsg() local
2360 memset(&scm, 0, sizeof(scm)); in __unix_dgram_recvmsg()
2362 scm_set_cred(&scm, UNIXCB(skb).pid, UNIXCB(skb).uid, UNIXCB(skb).gid); in __unix_dgram_recvmsg()
2363 unix_set_secdata(&scm, skb); in __unix_dgram_recvmsg()
2367 unix_detach_fds(&scm, skb); in __unix_dgram_recvmsg()
2387 unix_peek_fds(&scm, skb); in __unix_dgram_recvmsg()
2391 scm_recv(sock, msg, &scm, flags); in __unix_dgram_recvmsg()
2591 struct scm_cookie scm; in unix_stream_read_generic() local
2622 memset(&scm, 0, sizeof(scm)); in unix_stream_read_generic()
2684 scm_destroy(&scm); in unix_stream_read_generic()
2708 if (!unix_skb_scm_eq(skb, &scm)) in unix_stream_read_generic()
2712 scm_set_cred(&scm, UNIXCB(skb).pid, UNIXCB(skb).uid, UNIXCB(skb).gid); in unix_stream_read_generic()
2713 unix_set_secdata(&scm, skb); in unix_stream_read_generic()
2759 unix_detach_fds(&scm, skb); in unix_stream_read_generic()
2768 if (scm.fp) in unix_stream_read_generic()
2774 unix_peek_fds(&scm, skb); in unix_stream_read_generic()
2795 scm_recv(sock, state->msg, &scm, flags); in unix_stream_read_generic()
2797 scm_destroy(&scm); in unix_stream_read_generic()