r23039 - in /desktop/unstable/gnome-keyring/debian: changelog patches/03_kfreebsd.patch

joss at users.alioth.debian.org joss at users.alioth.debian.org
Thu Feb 11 22:51:31 UTC 2010


Author: joss
Date: Thu Feb 11 22:51:30 2010
New Revision: 23039

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=23039
Log:
03_kfreebsd.patch: new version of the patch. Closes: #558406 again.

Modified:
    desktop/unstable/gnome-keyring/debian/changelog
    desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch

Modified: desktop/unstable/gnome-keyring/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-keyring/debian/changelog?rev=23039&op=diff
==============================================================================
--- desktop/unstable/gnome-keyring/debian/changelog [utf-8] (original)
+++ desktop/unstable/gnome-keyring/debian/changelog [utf-8] Thu Feb 11 22:51:30 2010
@@ -1,6 +1,7 @@
 gnome-keyring (2.28.2-2) UNRELEASED; urgency=low
 
   * The library only suggests the daemon. Closes: #563358.
+  * 03_kfreebsd.patch: new version of the patch. Closes: #558406 again.
 
  -- Josselin Mouette <joss at debian.org>  Mon, 04 Jan 2010 15:56:46 +0100
 

Modified: desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch?rev=23039&op=diff
==============================================================================
--- desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch [utf-8] (original)
+++ desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch [utf-8] Thu Feb 11 22:51:30 2010
@@ -1,58 +1,59 @@
---- a/egg/egg-unix-credentials.c
-+++ b/egg/egg-unix-credentials.c
-@@ -45,7 +45,7 @@
+--- gnome-keyring-2.28.1-orig/egg/egg-unix-credentials.c	2009-10-18 01:27:22.000000000 +0200
++++ gnome-keyring-2.28.1/egg/egg-unix-credentials.c	2009-12-07 01:13:17.000000000 +0100
+@@ -37,6 +37,10 @@
+ #include <ucred.h>
+ #endif
+ 
++#if defined(__FreeBSD_kernel__)
++#include <sys/ucred.h>
++#endif
++
+ int
+ egg_unix_credentials_read (int sock, pid_t *pid, uid_t *uid)
+ {
+@@ -45,7 +49,7 @@
  	char buf;
  	int ret;
  	
 -#if defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)
-+#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && (!defined(__FreeBSD__) || !defined(__FreeBSD_kernel__))
++#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && !defined(__FreeBSD_kernel__)
  	/* Prefer CMSGCRED over LOCAL_CREDS because the former provides the
  	 * remote PID. */
  #if defined(HAVE_CMSGCRED)
-@@ -73,7 +73,7 @@
+@@ -73,7 +77,7 @@
  	msg.msg_iov = &iov;
  	msg.msg_iovlen = 1;
  	
 -#if defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)
-+#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && (!defined(__FreeBSD__) || !defined(__FreeBSD_kernel__))
++#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && !defined(__FreeBSD_kernel__)
  	memset (&cmsg, 0, sizeof (cmsg));
  	msg.msg_control = (caddr_t) &cmsg;
  	msg.msg_controllen = CMSG_SPACE(sizeof *cred);
-@@ -96,8 +96,8 @@
- 		fprintf (stderr, "credentials byte was not nul\n");
+@@ -97,7 +101,7 @@
  		return -1;
  	}
--
+ 
 -#if defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)
-+	
-+#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && (!defined(__FreeBSD__) || !defined(__FreeBSD_kernel__))
++#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && !defined(__FreeBSD_kernel__)
  	if (cmsg.hdr.cmsg_len < CMSG_LEN (sizeof *cred) ||
  	    cmsg.hdr.cmsg_type != SCM_CREDS) {
  		fprintf (stderr, "message from recvmsg() was not SCM_CREDS\n");
-@@ -164,7 +164,7 @@
- {
- 	char buf;
- 	int bytes_written;
--#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__))
-+#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
- 	union {
- 		struct cmsghdr hdr;
- 		char cred[CMSG_SPACE (sizeof (struct cmsgcred))];
-@@ -175,7 +175,7 @@
- 
- 	buf = 0;
- 
--#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__))
-+#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
- 	iov.iov_base = &buf;
- 	iov.iov_len = 1;
- 
-@@ -193,7 +193,7 @@
- 
- again:
- 
--#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__))
-+#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
- 	bytes_written = sendmsg (socket, &msg, 0);
- #else
- 	bytes_written = write (socket, &buf, 1);
+@@ -119,6 +123,18 @@
+ 				     cr_len, (int) sizeof (cr));
+ 			return -1;
+ 		}
++#elif defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */
++		struct xucred cr;
++		socklen_t cr_len = sizeof(cr);
++		*pid = 0;
++		
++		if (getsockopt (sock, 0, LOCAL_PEERCRED, &cr, &cr_len) == 0) {
++			*uid = cr.cr_uid;
++		} else {
++			fprintf (stderr, "failed to getsockopt() credentials, returned len %d/%d\n",
++				     cr_len, (int) sizeof (cr));
++			return -1;
++		}
+ #elif defined(HAVE_CMSGCRED)
+ 		cred = (struct cmsgcred *) CMSG_DATA (&cmsg.hdr);
+ 		*pid = cred->cmcred_pid;




More information about the pkg-gnome-commits mailing list