Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / net / scm.h
index b7ba74d..540619c 100644 (file)
@@ -37,10 +37,12 @@ static __inline__ void scm_destroy(struct scm_cookie *scm)
 static __inline__ int scm_send(struct socket *sock, struct msghdr *msg,
                               struct scm_cookie *scm)
 {
-       memset(scm, 0, sizeof(*scm));
-       scm->creds.uid = current->uid;
-       scm->creds.gid = current->gid;
-       scm->creds.pid = current->tgid;
+       struct task_struct *p = current;
+       scm->creds.uid = p->uid;
+       scm->creds.gid = p->gid;
+       scm->creds.pid = p->tgid;
+       scm->fp = NULL;
+       scm->seq = 0;
        if (msg->msg_controllen <= 0)
                return 0;
        return __scm_send(sock, msg, scm);
@@ -51,13 +53,13 @@ static __inline__ void scm_recv(struct socket *sock, struct msghdr *msg,
 {
        if (!msg->msg_control)
        {
-               if (sock->passcred || scm->fp)
+               if (test_bit(SOCK_PASSCRED, &sock->flags) || scm->fp)
                        msg->msg_flags |= MSG_CTRUNC;
                scm_destroy(scm);
                return;
        }
 
-       if (sock->passcred)
+       if (test_bit(SOCK_PASSCRED, &sock->flags))
                put_cmsg(msg, SOL_SOCKET, SCM_CREDENTIALS, sizeof(scm->creds), &scm->creds);
 
        if (!scm->fp)