diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2004-05-11 20:28:56 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2004-05-11 20:28:56 +0000 |
commit | 2282b54a51e19de2137eb5210f57c0bab71ee0b0 (patch) | |
tree | 10f883ac4fd64ed9edb5a05e21f40192d515aa70 /security/gnome-keyring/files | |
parent | 18fec08577212b871c4aead71e1963f1bd964955 (diff) |
Notes
Diffstat (limited to 'security/gnome-keyring/files')
-rw-r--r-- | security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c | 35 | ||||
-rw-r--r-- | security/gnome-keyring/files/patch-gnome-keyring.c | 80 |
2 files changed, 115 insertions, 0 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 new file mode 100644 index 000000000000..84e2756577da --- /dev/null +++ b/security/gnome-keyring/files/patch-gnome-keyring-daemon-io.c @@ -0,0 +1,35 @@ +--- gnome-keyring-daemon-io.c.orig Tue May 11 15:31:33 2004 ++++ gnome-keyring-daemon-io.c Tue May 11 16:27:21 2004 +@@ -99,7 +99,7 @@ + struct iovec iov; + char buf; + +-#ifdef HAVE_CMSGCRED ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) + char cmsgmem[CMSG_SPACE (sizeof (struct cmsgcred))]; + struct cmsghdr *cmsg = (struct cmsghdr *) cmsgmem; + #endif +@@ -118,18 +118,17 @@ + } + #endif + +- iov.iov_base = &buf; +- iov.iov_len = 1; +- + memset (&msg, 0, sizeof (msg)); + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + +-#ifdef HAVE_CMSGCRED +- memset (cmsgmem, 0, sizeof (cmsgmem)); +- msg.msg_control = cmsgmem; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ msg.msg_control = (char *) cmsg; + msg.msg_controllen = sizeof (cmsgmem); ++ memset (cmsg, 0, sizeof (cmsgmem)); + #endif ++ iov.iov_base = &buf; ++ iov.iov_len = 1; + + again: + if (recvmsg (fd, &msg, 0) < 0) { diff --git a/security/gnome-keyring/files/patch-gnome-keyring.c b/security/gnome-keyring/files/patch-gnome-keyring.c new file mode 100644 index 000000000000..c798f8e0bc5a --- /dev/null +++ b/security/gnome-keyring/files/patch-gnome-keyring.c @@ -0,0 +1,80 @@ +--- gnome-keyring.c.orig Tue May 11 15:45:22 2004 ++++ gnome-keyring.c Tue May 11 16:22:21 2004 +@@ -248,11 +248,37 @@ + { + char buf; + int bytes_written; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ char cmsgmem[CMSG_SPACE (sizeof (struct cmsgcred))]; ++ struct cmsghdr *cmsg = (struct cmsghdr *) cmsgmem; ++ struct iovec iov; ++ struct msghdr msg; ++#endif ++ ++ buf = 0; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ iov.iov_base = &buf; ++ iov.iov_len = 1; ++ ++ memset (&msg, 0, sizeof (msg)); ++ msg.msg_iov = &iov; ++ msg.msg_iovlen = 1; ++ ++ msg.msg_control = cmsg; ++ msg.msg_controllen = sizeof (cmsgmem); ++ memset (cmsg, 0, sizeof (cmsgmem)); ++ cmsg->cmsg_len = sizeof (cmsgmem); ++ cmsg->cmsg_level = SOL_SOCKET; ++ cmsg->cmsg_type = SCM_CREDS; ++#endif + + again: + +- buf = 0; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ bytes_written = sendmsg (socket, &msg, 0); ++#else + bytes_written = write (socket, &buf, 1); ++#endif + + if (bytes_written < 0 && errno == EINTR) + goto again; +@@ -270,11 +296,37 @@ + { + char buf; + int bytes_written; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ char cmsgmem[CMSG_SPACE (sizeof (struct cmsgcred))]; ++ struct cmsghdr *cmsg = (struct cmsghdr *) cmsgmem; ++ struct iovec iov; ++ struct msghdr msg; ++#endif ++ ++ buf = 0; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ iov.iov_base = &buf; ++ iov.iov_len = 1; ++ ++ memset (&msg, 0, sizeof (msg)); ++ msg.msg_iov = &iov; ++ msg.msg_iovlen = 1; ++ ++ msg.msg_control = cmsg; ++ msg.msg_controllen = sizeof (cmsgmem); ++ memset (cmsg, 0, sizeof (cmsgmem)); ++ cmsg->cmsg_len = sizeof (cmsgmem); ++ cmsg->cmsg_level = SOL_SOCKET; ++ cmsg->cmsg_type = SCM_CREDS; ++#endif + + again: + +- buf = 0; ++#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) ++ bytes_written = sendmsg (op->socket, &msg, 0); ++#else + bytes_written = write (op->socket, &buf, 1); ++#endif + + if (bytes_written < 0 && errno == EINTR) + goto again; |