Lines Matching full:scm

108 #include <net/scm.h>
256 static void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
258 UNIXCB(skb).secid = scm->secid; in unix_get_secdata()
261 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
263 scm->secid = UNIXCB(skb).secid; in unix_set_secdata()
266 static inline bool unix_secdata_eq(struct scm_cookie *scm, struct sk_buff *skb) in unix_secdata_eq() argument
268 return (scm->secid == UNIXCB(skb).secid); in unix_secdata_eq()
271 static inline void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
274 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
277 static inline bool unix_secdata_eq(struct scm_cookie *scm, struct sk_buff *skb) in unix_secdata_eq() argument
1962 static int unix_attach_fds(struct scm_cookie *scm, struct sk_buff *skb) in unix_attach_fds() argument
1967 UNIXCB(skb).fp = scm->fp; in unix_attach_fds()
1968 scm->fp = NULL; in unix_attach_fds()
1976 static void unix_detach_fds(struct scm_cookie *scm, struct sk_buff *skb) in unix_detach_fds() argument
1978 scm->fp = UNIXCB(skb).fp; in unix_detach_fds()
1981 unix_destroy_fpl(scm->fp); in unix_detach_fds()
1984 static void unix_peek_fds(struct scm_cookie *scm, struct sk_buff *skb) in unix_peek_fds() argument
1986 scm->fp = scm_fp_dup(UNIXCB(skb).fp); in unix_peek_fds()
1991 struct scm_cookie scm; in unix_destruct_scm() local
1993 memset(&scm, 0, sizeof(scm)); in unix_destruct_scm()
1994 scm.pid = UNIXCB(skb).pid; in unix_destruct_scm()
1996 unix_detach_fds(&scm, skb); in unix_destruct_scm()
2000 scm_destroy(&scm); in unix_destruct_scm()
2004 static int unix_scm_to_skb(struct scm_cookie *scm, struct sk_buff *skb, bool send_fds) in unix_scm_to_skb() argument
2008 UNIXCB(skb).pid = get_pid(scm->pid); in unix_scm_to_skb()
2009 UNIXCB(skb).uid = scm->creds.uid; in unix_scm_to_skb()
2010 UNIXCB(skb).gid = scm->creds.gid; in unix_scm_to_skb()
2012 unix_get_secdata(scm, skb); in unix_scm_to_skb()
2013 if (scm->fp && send_fds) in unix_scm_to_skb()
2014 err = unix_attach_fds(scm, skb); in unix_scm_to_skb()
2020 static void unix_skb_to_scm(struct sk_buff *skb, struct scm_cookie *scm) in unix_skb_to_scm() argument
2022 scm_set_cred(scm, UNIXCB(skb).pid, UNIXCB(skb).uid, UNIXCB(skb).gid); in unix_skb_to_scm()
2023 unix_set_secdata(scm, skb); in unix_skb_to_scm()
2063 struct scm_cookie *scm) in unix_skb_scm_eq() argument
2065 return UNIXCB(skb).pid == scm->pid && in unix_skb_scm_eq()
2066 uid_eq(UNIXCB(skb).uid, scm->creds.uid) && in unix_skb_scm_eq()
2067 gid_eq(UNIXCB(skb).gid, scm->creds.gid) && in unix_skb_scm_eq()
2068 unix_secdata_eq(scm, skb); in unix_skb_scm_eq()
2102 struct scm_cookie scm; in unix_dgram_sendmsg() local
2109 err = scm_send(sock, msg, &scm, false); in unix_dgram_sendmsg()
2113 wait_for_unix_gc(scm.fp); in unix_dgram_sendmsg()
2159 err = unix_scm_to_skb(&scm, skb, true); in unix_dgram_sendmsg()
2311 scm_destroy(&scm); in unix_dgram_sendmsg()
2323 scm_destroy(&scm); in unix_dgram_sendmsg()
2334 struct scm_cookie *scm, bool fds_sent) in queue_oob() argument
2345 err = unix_scm_to_skb(scm, skb, !fds_sent); in queue_oob()
2400 struct scm_cookie scm; in unix_stream_sendmsg() local
2404 err = scm_send(sock, msg, &scm, false); in unix_stream_sendmsg()
2408 wait_for_unix_gc(scm.fp); in unix_stream_sendmsg()
2463 err = unix_scm_to_skb(&scm, skb, !fds_sent); in unix_stream_sendmsg()
2516 err = queue_oob(sk, msg, other, &scm, fds_sent); in unix_stream_sendmsg()
2523 scm_destroy(&scm); in unix_stream_sendmsg()
2536 scm_destroy(&scm); in unix_stream_sendmsg()
2583 struct scm_cookie scm; in __unix_dgram_recvmsg() local
2650 memset(&scm, 0, sizeof(scm)); in __unix_dgram_recvmsg()
2652 unix_skb_to_scm(skb, &scm); in __unix_dgram_recvmsg()
2656 unix_detach_fds(&scm, skb); in __unix_dgram_recvmsg()
2676 unix_peek_fds(&scm, skb); in __unix_dgram_recvmsg()
2680 scm_recv_unix(sock, msg, &scm, flags); in __unix_dgram_recvmsg()
2928 struct scm_cookie scm; in unix_stream_read_generic() local
2953 memset(&scm, 0, sizeof(scm)); in unix_stream_read_generic()
3014 scm_destroy(&scm); in unix_stream_read_generic()
3038 if (!unix_skb_scm_eq(skb, &scm)) in unix_stream_read_generic()
3042 unix_skb_to_scm(skb, &scm); in unix_stream_read_generic()
3075 unix_detach_fds(&scm, skb); in unix_stream_read_generic()
3088 if (scm.fp) in unix_stream_read_generic()
3094 unix_peek_fds(&scm, skb); in unix_stream_read_generic()
3115 scm_recv_unix(sock, msg, &scm, flags); in unix_stream_read_generic()
3123 scm_destroy(&scm); in unix_stream_read_generic()