Lines Matching full:scm

108 #include <net/scm.h>
121 #include "scm.h"
189 static void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
191 UNIXCB(skb).secid = scm->secid; in unix_get_secdata()
194 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
196 scm->secid = UNIXCB(skb).secid; in unix_set_secdata()
199 static inline bool unix_secdata_eq(struct scm_cookie *scm, struct sk_buff *skb) in unix_secdata_eq() argument
201 return (scm->secid == UNIXCB(skb).secid); in unix_secdata_eq()
204 static inline void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
207 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
210 static inline bool unix_secdata_eq(struct scm_cookie *scm, struct sk_buff *skb) in unix_secdata_eq() argument
1778 static void unix_peek_fds(struct scm_cookie *scm, struct sk_buff *skb) in unix_peek_fds() argument
1780 scm->fp = scm_fp_dup(UNIXCB(skb).fp); in unix_peek_fds()
1825 static int unix_scm_to_skb(struct scm_cookie *scm, struct sk_buff *skb, bool send_fds) in unix_scm_to_skb() argument
1829 UNIXCB(skb).pid = get_pid(scm->pid); in unix_scm_to_skb()
1830 UNIXCB(skb).uid = scm->creds.uid; in unix_scm_to_skb()
1831 UNIXCB(skb).gid = scm->creds.gid; in unix_scm_to_skb()
1833 unix_get_secdata(scm, skb); in unix_scm_to_skb()
1834 if (scm->fp && send_fds) in unix_scm_to_skb()
1835 err = unix_attach_fds(scm, skb); in unix_scm_to_skb()
1868 struct scm_cookie *scm) in unix_skb_scm_eq() argument
1870 return UNIXCB(skb).pid == scm->pid && in unix_skb_scm_eq()
1871 uid_eq(UNIXCB(skb).uid, scm->creds.uid) && in unix_skb_scm_eq()
1872 gid_eq(UNIXCB(skb).gid, scm->creds.gid) && in unix_skb_scm_eq()
1873 unix_secdata_eq(scm, skb); in unix_skb_scm_eq()
1904 struct scm_cookie scm; in unix_dgram_sendmsg() local
1912 err = scm_send(sock, msg, &scm, false); in unix_dgram_sendmsg()
1965 err = unix_scm_to_skb(&scm, skb, true); in unix_dgram_sendmsg()
2101 scm_destroy(&scm); in unix_dgram_sendmsg()
2113 scm_destroy(&scm); in unix_dgram_sendmsg()
2124 struct scm_cookie *scm, bool fds_sent) in queue_oob() argument
2135 err = unix_scm_to_skb(scm, skb, !fds_sent); in queue_oob()
2183 struct scm_cookie scm; in unix_stream_sendmsg() local
2188 err = scm_send(sock, msg, &scm, false); in unix_stream_sendmsg()
2241 err = unix_scm_to_skb(&scm, skb, !fds_sent); in unix_stream_sendmsg()
2284 err = queue_oob(sock, msg, other, &scm, fds_sent); in unix_stream_sendmsg()
2291 scm_destroy(&scm); in unix_stream_sendmsg()
2303 scm_destroy(&scm); in unix_stream_sendmsg()
2350 struct scm_cookie scm; in __unix_dgram_recvmsg() local
2419 memset(&scm, 0, sizeof(scm)); in __unix_dgram_recvmsg()
2421 scm_set_cred(&scm, UNIXCB(skb).pid, UNIXCB(skb).uid, UNIXCB(skb).gid); in __unix_dgram_recvmsg()
2422 unix_set_secdata(&scm, skb); in __unix_dgram_recvmsg()
2426 unix_detach_fds(&scm, skb); in __unix_dgram_recvmsg()
2446 unix_peek_fds(&scm, skb); in __unix_dgram_recvmsg()
2450 scm_recv_unix(sock, msg, &scm, flags); in __unix_dgram_recvmsg()
2627 struct scm_cookie scm; in unix_stream_read_generic() local
2658 memset(&scm, 0, sizeof(scm)); in unix_stream_read_generic()
2720 scm_destroy(&scm); in unix_stream_read_generic()
2744 if (!unix_skb_scm_eq(skb, &scm)) in unix_stream_read_generic()
2749 scm_set_cred(&scm, UNIXCB(skb).pid, UNIXCB(skb).uid, UNIXCB(skb).gid); in unix_stream_read_generic()
2750 unix_set_secdata(&scm, skb); in unix_stream_read_generic()
2801 unix_detach_fds(&scm, skb); in unix_stream_read_generic()
2810 if (scm.fp) in unix_stream_read_generic()
2816 unix_peek_fds(&scm, skb); in unix_stream_read_generic()
2837 scm_recv_unix(sock, state->msg, &scm, flags); in unix_stream_read_generic()
2839 scm_destroy(&scm); in unix_stream_read_generic()