Author: lidl
Date: Fri Jun  3 07:00:28 2016
New Revision: 301243
URL: https://svnweb.freebsd.org/changeset/base/301243

Log:
  Add blacklist support to fingerd
  
  Reviewed by:  rpaulo
  Approved by:  rpaulo
  Relnotes:     YES
  Sponsored by: The FreeBSD Foundation
  Differential Revision:        https://reviews.freebsd.org/D5916

Modified:
  head/libexec/fingerd/Makefile
  head/libexec/fingerd/fingerd.c

Modified: head/libexec/fingerd/Makefile
==============================================================================
--- head/libexec/fingerd/Makefile       Fri Jun  3 06:58:20 2016        
(r301242)
+++ head/libexec/fingerd/Makefile       Fri Jun  3 07:00:28 2016        
(r301243)
@@ -1,6 +1,8 @@
 #      @(#)Makefile    8.1 (Berkeley) 6/4/93
 # $FreeBSD$
 
+.include <src.opts.mk>
+
 PROG=  fingerd
 LIBADD=        util
 MAN=   fingerd.8
@@ -8,4 +10,10 @@ MAN=  fingerd.8
 WARNS?=        2
 WFORMAT=0
 
+.if ${MK_BLACKLIST_SUPPORT} != "no"
+CFLAGS+= -DUSE_BLACKLIST -I${SRCTOP}/contrib/blacklist/include
+LIBADD+= blacklist
+LDFLAGS+=-L${LIBBLACKLISTDIR}
+.endif
+
 .include <bsd.prog.mk>

Modified: head/libexec/fingerd/fingerd.c
==============================================================================
--- head/libexec/fingerd/fingerd.c      Fri Jun  3 06:58:20 2016        
(r301242)
+++ head/libexec/fingerd/fingerd.c      Fri Jun  3 07:00:28 2016        
(r301243)
@@ -57,6 +57,9 @@ static const char rcsid[] =
 #include <stdlib.h>
 #include <string.h>
 #include "pathnames.h"
+#ifdef USE_BLACKLIST
+#include <blacklist.h>
+#endif
 
 void logerr(const char *, ...) __printflike(1, 2) __dead2;
 
@@ -153,12 +156,18 @@ main(int argc, char *argv[])
                *ap = strtok(lp, " \t\r\n");
                if (!*ap) {
                        if (secure && ap == &av[4]) {
+#ifdef USE_BLACKLIST
+                               blacklist(1, STDIN_FILENO, "nousername");
+#endif
                                puts("must provide username\r\n");
                                exit(1);
                        }
                        break;
                }
                if (secure && strchr(*ap, '@')) {
+#ifdef USE_BLACKLIST
+                       blacklist(1, STDIN_FILENO, "noforwarding");
+#endif
                        puts("forwarding service denied\r\n");
                        exit(1);
                }
@@ -197,6 +206,9 @@ main(int argc, char *argv[])
                }
                dup2(STDOUT_FILENO, STDERR_FILENO);
 
+#ifdef USE_BLACKLIST
+               blacklist(0, STDIN_FILENO, "success");
+#endif
                execv(prog, comp);
                write(STDERR_FILENO, prog, strlen(prog));
 #define MSG ": cannot execute\n"
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to