aboutsummaryrefslogtreecommitdiff
path: root/security/mate-keyring/files/patch-egg_egg-unix-credentials.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/mate-keyring/files/patch-egg_egg-unix-credentials.c')
-rw-r--r--security/mate-keyring/files/patch-egg_egg-unix-credentials.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/security/mate-keyring/files/patch-egg_egg-unix-credentials.c b/security/mate-keyring/files/patch-egg_egg-unix-credentials.c
new file mode 100644
index 000000000000..5ae53f8b02cc
--- /dev/null
+++ b/security/mate-keyring/files/patch-egg_egg-unix-credentials.c
@@ -0,0 +1,44 @@
+--- egg/egg-unix-credentials.c.orig 2010-01-13 00:21:23.000000000 -0500
++++ egg/egg-unix-credentials.c 2010-01-13 00:25:46.000000000 -0500
+@@ -27,6 +27,7 @@
+
+ #include <sys/types.h>
+ #include <sys/socket.h>
++#include <sys/param.h>
+ #include <sys/uio.h>
+ #include <sys/un.h>
+ #include <errno.h>
+@@ -37,6 +38,33 @@
+ #include <ucred.h>
+ #endif
+
++#if __FreeBSD_version < 701101
++static char *
++strndup (const char *s, size_t n)
++{
++ size_t nAvail;
++ char *p;
++
++ if (s == NULL)
++ return NULL;
++
++ if (memchr (s, '\0', n) != NULL) {
++ nAvail = strlen(s);
++ if (nAvail > n)
++ nAvail = n;
++ } else{
++ nAvail = n;
++ }
++ p = malloc (nAvail + 1);
++ if (p == NULL)
++ return NULL;
++ memcpy (p, s, nAvail);
++ p[nAvail] = '\0';
++
++ return p;
++}
++#endif
++
+ int
+ egg_unix_credentials_read (int sock, pid_t *pid, uid_t *uid)
+ {