aboutsummaryrefslogtreecommitdiff
path: root/security/gnome-keyring/files
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2005-07-17 01:54:54 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2005-07-17 01:54:54 +0000
commit79ec2ec03aa17cbeba712850da4dfcbf4b8fde17 (patch)
treeca5b70e6c86977e8880e132d80583b40f9d1a3ed /security/gnome-keyring/files
parente03183876f697dd4ff10365bc5ea7e17b7e638cc (diff)
Notes
Diffstat (limited to 'security/gnome-keyring/files')
-rw-r--r--security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c32
-rw-r--r--security/gnome-keyring/files/patch-gnome-keyring.c24
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