summaryrefslogtreecommitdiff
path: root/textproc/iiimf-server/files/patch-iiimsf_src_iwrap.c
blob: c309e37a03f17ff66032130a6d098d83723a49f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Index: iiimsf/src/iwrap.c
diff -u -p iiimsf/src/iwrap.c.orig iiimsf/src/iwrap.c
--- iiimsf/src/iwrap.c.orig	Thu Sep  9 06:17:09 2004
+++ iiimsf/src/iwrap.c	Tue Feb 22 15:22:41 2005
@@ -72,6 +72,15 @@ int permit_access(
 {
 #ifdef HAVE_LIBWRAP
     struct request_info req;
+    struct sockaddr_storage ss;
+    struct sockaddr *pname = (struct sockaddr*) &ss;
+    socklen_t size;
+
+    size = sizeof(ss);
+    if (getpeername(h, pname, &size) < 0)
+	return 0;
+    if (pname->sa_family == AF_UNIX)
+    	return 1;
 
     request_init(&req, RQ_DAEMON, cmdname, RQ_FILE, h, 0);
     fromhost(&req);
@@ -177,6 +186,14 @@ authenticate_with_unix(
 #ifdef HAVE_GETPEEREID
     /* OpenBSD */
     git_t gid;
+
+    if (getpeereid(sock, &uid, &gid) != 0) {
+      return 0;
+    }
+
+#elif defined(__FreeBSD__)
+    /* FreeBSD */
+    gid_t gid = -1;
 
     if (getpeereid(sock, &uid, &gid) != 0) {
       return 0;