Lines Matching refs:scm
141 static void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
143 memcpy(UNIXSID(skb), &scm->secid, sizeof(u32)); in unix_get_secdata()
146 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
148 scm->secid = *UNIXSID(skb); in unix_set_secdata()
151 static inline void unix_get_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_get_secdata() argument
154 static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb) in unix_set_secdata() argument
1459 static void unix_detach_fds(struct scm_cookie *scm, struct sk_buff *skb) in unix_detach_fds() argument
1463 scm->fp = UNIXCB(skb).fp; in unix_detach_fds()
1466 for (i = scm->fp->count-1; i >= 0; i--) in unix_detach_fds()
1467 unix_notinflight(scm->fp->user, scm->fp->fp[i]); in unix_detach_fds()
1472 struct scm_cookie scm; in unix_destruct_scm() local
1473 memset(&scm, 0, sizeof(scm)); in unix_destruct_scm()
1474 scm.pid = UNIXCB(skb).pid; in unix_destruct_scm()
1476 unix_detach_fds(&scm, skb); in unix_destruct_scm()
1480 scm_destroy(&scm); in unix_destruct_scm()
1501 static int unix_attach_fds(struct scm_cookie *scm, struct sk_buff *skb) in unix_attach_fds() argument
1510 for (i = scm->fp->count - 1; i >= 0; i--) { in unix_attach_fds()
1511 struct sock *sk = unix_get_socket(scm->fp->fp[i]); in unix_attach_fds()
1527 UNIXCB(skb).fp = scm_fp_dup(scm->fp); in unix_attach_fds()
1531 for (i = scm->fp->count - 1; i >= 0; i--) in unix_attach_fds()
1532 unix_inflight(scm->fp->user, scm->fp->fp[i]); in unix_attach_fds()
1536 static int unix_scm_to_skb(struct scm_cookie *scm, struct sk_buff *skb, bool send_fds) in unix_scm_to_skb() argument
1540 UNIXCB(skb).pid = get_pid(scm->pid); in unix_scm_to_skb()
1541 UNIXCB(skb).uid = scm->creds.uid; in unix_scm_to_skb()
1542 UNIXCB(skb).gid = scm->creds.gid; in unix_scm_to_skb()
1544 if (scm->fp && send_fds) in unix_scm_to_skb()
1545 err = unix_attach_fds(scm, skb); in unix_scm_to_skb()
1586 struct scm_cookie scm; in unix_dgram_sendmsg() local
1592 err = scm_send(sock, msg, &scm, false); in unix_dgram_sendmsg()
1636 err = unix_scm_to_skb(&scm, skb, true); in unix_dgram_sendmsg()
1640 unix_get_secdata(&scm, skb); in unix_dgram_sendmsg()
1763 scm_destroy(&scm); in unix_dgram_sendmsg()
1775 scm_destroy(&scm); in unix_dgram_sendmsg()
1792 struct scm_cookie scm; in unix_stream_sendmsg() local
1798 err = scm_send(sock, msg, &scm, false); in unix_stream_sendmsg()
1839 err = unix_scm_to_skb(&scm, skb, !fds_sent); in unix_stream_sendmsg()
1871 scm_destroy(&scm); in unix_stream_sendmsg()
1883 scm_destroy(&scm); in unix_stream_sendmsg()
1930 struct scm_cookie scm; in unix_dgram_recvmsg() local
1982 memset(&scm, 0, sizeof(scm)); in unix_dgram_recvmsg()
1984 scm_set_cred(&scm, UNIXCB(skb).pid, UNIXCB(skb).uid, UNIXCB(skb).gid); in unix_dgram_recvmsg()
1985 unix_set_secdata(&scm, skb); in unix_dgram_recvmsg()
1989 unix_detach_fds(&scm, skb); in unix_dgram_recvmsg()
2009 scm.fp = scm_fp_dup(UNIXCB(skb).fp); in unix_dgram_recvmsg()
2013 scm_recv(sock, msg, &scm, flags); in unix_dgram_recvmsg()
2067 struct scm_cookie scm; in unix_stream_recvmsg() local
2094 memset(&scm, 0, sizeof(scm)); in unix_stream_recvmsg()
2139 scm_destroy(&scm); in unix_stream_recvmsg()
2162 if ((UNIXCB(skb).pid != scm.pid) || in unix_stream_recvmsg()
2163 !uid_eq(UNIXCB(skb).uid, scm.creds.uid) || in unix_stream_recvmsg()
2164 !gid_eq(UNIXCB(skb).gid, scm.creds.gid)) in unix_stream_recvmsg()
2168 scm_set_cred(&scm, UNIXCB(skb).pid, UNIXCB(skb).uid, UNIXCB(skb).gid); in unix_stream_recvmsg()
2195 unix_detach_fds(&scm, skb); in unix_stream_recvmsg()
2203 if (scm.fp) in unix_stream_recvmsg()
2209 scm.fp = scm_fp_dup(UNIXCB(skb).fp); in unix_stream_recvmsg()
2228 scm_recv(sock, msg, &scm, flags); in unix_stream_recvmsg()