diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2005-07-17 01:54:54 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2005-07-17 01:54:54 +0000 |
commit | 79ec2ec03aa17cbeba712850da4dfcbf4b8fde17 (patch) | |
tree | ca5b70e6c86977e8880e132d80583b40f9d1a3ed /security/gnome-keyring/files | |
parent | e03183876f697dd4ff10365bc5ea7e17b7e638cc (diff) |
Notes
Diffstat (limited to 'security/gnome-keyring/files')
-rw-r--r-- | security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c | 32 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-gnome-keyring.c | 24 |
2 files changed, 27 insertions, 29 deletions
diff --git a/security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c b/security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c index c89df802497b..9c0e02eb14ff 100644 --- a/security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c +++ b/security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c @@ -1,14 +1,15 @@ ---- gnome-keyring-daemon-io.c.orig Mon Feb 21 02:50:03 2005 -+++ gnome-keyring-daemon-io.c Tue Apr 26 01:56:16 2005 -@@ -100,14 +100,16 @@ read_unix_socket_credentials (int fd, +--- gnome-keyring-daemon-io.c.orig Wed May 4 03:17:18 2005 ++++ gnome-keyring-daemon-io.c Sat Jul 16 21:46:13 2005 +@@ -100,14 +100,17 @@ read_unix_socket_credentials (int fd, char buf; #ifdef HAVE_CMSGCRED - char cmsgmem[CMSG_SPACE (sizeof (struct cmsgcred))]; - struct cmsghdr *cmsg = (struct cmsghdr *) cmsgmem; -+ struct { ++ struct cmsgcred *cred; ++ union { + struct cmsghdr hdr; -+ struct cmsgcred cred; ++ char cred[CMSG_SPACE (sizeof (struct cmsgcred))]; + } cmsg; #endif @@ -20,7 +21,7 @@ /* Set the socket to receive credentials on the next message */ { int on = 1; -@@ -126,9 +128,9 @@ read_unix_socket_credentials (int fd, +@@ -126,9 +129,9 @@ read_unix_socket_credentials (int fd, msg.msg_iovlen = 1; #ifdef HAVE_CMSGCRED @@ -28,22 +29,22 @@ - msg.msg_control = cmsgmem; - msg.msg_controllen = sizeof (cmsgmem); + memset (&cmsg, 0, sizeof (cmsg)); -+ msg.msg_control = &cmsg; -+ msg.msg_controllen = sizeof (cmsg); ++ msg.msg_control = (caddr_t) &cmsg; ++ msg.msg_controllen = CMSG_SPACE (sizeof (struct cmsgcred)); #endif again: -@@ -147,7 +149,8 @@ read_unix_socket_credentials (int fd, +@@ -147,7 +150,8 @@ read_unix_socket_credentials (int fd, } #ifdef HAVE_CMSGCRED - if (cmsg->cmsg_len < sizeof (cmsgmem) || cmsg->cmsg_type != SCM_CREDS) { -+ if (cmsg.hdr.cmsg_len < sizeof (cmsg) || ++ if (cmsg.hdr.cmsg_len < CMSG_LEN (sizeof (struct cmsgcred)) || + cmsg.hdr.cmsg_type != SCM_CREDS) { g_warning ("Message from recvmsg() was not SCM_CREDS\n"); return FALSE; } -@@ -168,12 +171,8 @@ read_unix_socket_credentials (int fd, +@@ -168,10 +172,7 @@ read_unix_socket_credentials (int fd, return FALSE; } #elif defined(HAVE_CMSGCRED) @@ -51,10 +52,7 @@ - - cred = (struct cmsgcred *) CMSG_DATA (cmsg); - -- *pid = cred->cmcred_pid; -- *uid = cred->cmcred_euid; -+ *pid = cmsg.cred.cmcred_pid; -+ *uid = cmsg.cred.cmcred_euid; ++ cred = (struct cmsgcred *) CMSG_DATA (&cmsg); + *pid = cred->cmcred_pid; + *uid = cred->cmcred_euid; #else /* !SO_PEERCRED && !HAVE_CMSGCRED */ - g_warning ("Socket credentials not supported on this OS\n"); - return FALSE; diff --git a/security/gnome-keyring/files/patch-gnome-keyring.c b/security/gnome-keyring/files/patch-gnome-keyring.c index a6f5995515e9..728352a8b013 100644 --- a/security/gnome-keyring/files/patch-gnome-keyring.c +++ b/security/gnome-keyring/files/patch-gnome-keyring.c @@ -1,5 +1,5 @@ ---- gnome-keyring.c.orig Mon Feb 21 02:50:29 2005 -+++ gnome-keyring.c Tue Apr 26 01:57:25 2005 +--- gnome-keyring.c.orig Fri May 27 03:54:22 2005 ++++ gnome-keyring.c Sat Jul 16 21:49:24 2005 @@ -36,6 +36,7 @@ #include <string.h> #include <sys/types.h> @@ -13,9 +13,9 @@ char buf; int bytes_written; +#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__)) -+ struct { ++ union { + struct cmsghdr hdr; -+ struct cmsgcred cred; ++ char cred[CMSG_SPACE (sizeof (struct cmsgcred))]; + } cmsg; + struct iovec iov; + struct msghdr msg; @@ -30,10 +30,10 @@ + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + -+ msg.msg_control = &cmsg; -+ msg.msg_controllen = sizeof (cmsg); ++ msg.msg_control = (caddr_t) &cmsg; ++ msg.msg_controllen = CMSG_SPACE (sizeof (struct cmsgcred)); + memset (&cmsg, 0, sizeof (cmsg)); -+ cmsg.hdr.cmsg_len = sizeof (cmsg); ++ cmsg.hdr.cmsg_len = CMSG_LEN (sizeof (struct cmsgcred)); + cmsg.hdr.cmsg_level = SOL_SOCKET; + cmsg.hdr.cmsg_type = SCM_CREDS; +#endif @@ -54,9 +54,9 @@ char buf; int bytes_written; +#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__)) -+ struct { ++ union { + struct cmsghdr hdr; -+ struct cmsgcred cred; ++ char cred[CMSG_SPACE (sizeof (struct cmsgcred))]; + } cmsg; + struct iovec iov; + struct msghdr msg; @@ -71,10 +71,10 @@ + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + -+ msg.msg_control = &cmsg; -+ msg.msg_controllen = sizeof (cmsg); ++ msg.msg_control = (caddr_t) &cmsg; ++ msg.msg_controllen = CMSG_SPACE (sizeof (struct cmsgcred)); + memset (&cmsg, 0, sizeof (cmsg)); -+ cmsg.hdr.cmsg_len = sizeof (cmsg); ++ cmsg.hdr.cmsg_len = CMSG_LEN (sizeof (struct cmsgcred)); + cmsg.hdr.cmsg_level = SOL_SOCKET; + cmsg.hdr.cmsg_type = SCM_CREDS; +#endif |