mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
better workaround against PF_LOCAL.
This commit is contained in:
parent
c34b11a2c1
commit
90fd9a1b44
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=73782
9 changed files with 74 additions and 122 deletions
|
@ -1,22 +1,14 @@
|
|||
Index: master/service.c
|
||||
===================================================================
|
||||
RCS file: /usr/home/ume/ncvs/src/cyrus-imapd/master/service.c,v
|
||||
retrieving revision 1.2
|
||||
diff -u -r1.2 service.c
|
||||
--- master/service.c 2001/02/01 14:11:43 1.2
|
||||
+++ master/service.c 2001/02/01 22:10:35
|
||||
@@ -99,7 +99,13 @@
|
||||
diff -u master/service.c.orig master/service.c
|
||||
--- master/service.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service.c Wed Jan 22 22:57:20 2003
|
||||
@@ -102,6 +102,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+#ifdef INET6
|
||||
+ case AF_INET6:
|
||||
+#endif
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service.c
|
||||
diff -u master/service.c.orig master/service.c
|
||||
--- master/service.c.orig Thu Aug 15 06:02:41 2002
|
||||
+++ master/service.c Fri Aug 16 00:28:31 2002
|
||||
@@ -103,8 +103,13 @@
|
||||
--- master/service.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service.c Wed Jan 22 22:57:20 2003
|
||||
@@ -102,6 +102,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service-thread.c
|
||||
diff -u master/service-thread.c.orig master/service-thread.c
|
||||
--- master/service-thread.c.orig Fri Sep 13 18:43:06 2002
|
||||
+++ master/service-thread.c Fri Sep 13 19:15:50 2002
|
||||
@@ -100,8 +100,13 @@
|
||||
--- master/service-thread.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service-thread.c Wed Jan 22 23:09:52 2003
|
||||
@@ -99,6 +99,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service.c
|
||||
diff -u master/service.c.orig master/service.c
|
||||
--- master/service.c.orig Thu Aug 15 06:02:41 2002
|
||||
+++ master/service.c Fri Aug 16 00:28:31 2002
|
||||
@@ -103,8 +103,13 @@
|
||||
--- master/service.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service.c Wed Jan 22 22:57:20 2003
|
||||
@@ -102,6 +102,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service-thread.c
|
||||
diff -u master/service-thread.c.orig master/service-thread.c
|
||||
--- master/service-thread.c.orig Fri Sep 13 18:43:06 2002
|
||||
+++ master/service-thread.c Fri Sep 13 19:15:50 2002
|
||||
@@ -100,8 +100,13 @@
|
||||
--- master/service-thread.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service-thread.c Wed Jan 22 23:09:52 2003
|
||||
@@ -99,6 +99,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service.c
|
||||
diff -u master/service.c.orig master/service.c
|
||||
--- master/service.c.orig Thu Aug 15 06:02:41 2002
|
||||
+++ master/service.c Fri Aug 16 00:28:31 2002
|
||||
@@ -103,8 +103,13 @@
|
||||
--- master/service.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service.c Wed Jan 22 22:57:20 2003
|
||||
@@ -102,6 +102,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service-thread.c
|
||||
diff -u master/service-thread.c.orig master/service-thread.c
|
||||
--- master/service-thread.c.orig Fri Sep 13 18:43:06 2002
|
||||
+++ master/service-thread.c Fri Sep 13 19:15:50 2002
|
||||
@@ -100,8 +100,13 @@
|
||||
--- master/service-thread.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service-thread.c Wed Jan 22 23:09:52 2003
|
||||
@@ -99,6 +99,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service.c
|
||||
diff -u master/service.c.orig master/service.c
|
||||
--- master/service.c.orig Thu Aug 15 06:02:41 2002
|
||||
+++ master/service.c Fri Aug 16 00:28:31 2002
|
||||
@@ -103,8 +103,13 @@
|
||||
--- master/service.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service.c Wed Jan 22 22:57:20 2003
|
||||
@@ -102,6 +102,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
Index: master/service-thread.c
|
||||
diff -u master/service-thread.c.orig master/service-thread.c
|
||||
--- master/service-thread.c.orig Fri Sep 13 18:43:06 2002
|
||||
+++ master/service-thread.c Fri Sep 13 19:15:50 2002
|
||||
@@ -100,8 +100,13 @@
|
||||
--- master/service-thread.c.orig Wed Jan 22 22:52:36 2003
|
||||
+++ master/service-thread.c Wed Jan 22 23:09:52 2003
|
||||
@@ -99,6 +99,9 @@
|
||||
struct sockaddr_storage sin;
|
||||
socklen_t len = sizeof(sin);
|
||||
|
||||
+ /* XXX: old FreeBSD didn't fill sockaddr correctly against AF_UNIX */
|
||||
+ sin.ss_family = AF_UNIX;
|
||||
+
|
||||
/* is this a connection from the local host? */
|
||||
+ memset(&sin, 0, len);
|
||||
if (getpeername(fd, (struct sockaddr *) &sin, &len) == 0) {
|
||||
- if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
+ switch (((struct sockaddr *)&sin)->sa_family) {
|
||||
+ case AF_INET:
|
||||
+ case AF_INET6:
|
||||
+ break;
|
||||
+ default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (((struct sockaddr *)&sin)->sa_family == AF_UNIX) {
|
||||
|
|
Loading…
Add table
Reference in a new issue