Module Name: src Committed By: roy Date: Thu Mar 12 11:31:23 UTC 2020
Modified Files: src/external/bsd/blacklist/bin: blacklistd.c conf.c src/external/bsd/blacklist/lib: bl.c Log Message: Revert allowing fd == -1 at the request of Christos. To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/external/bsd/blacklist/bin/blacklistd.c cvs rdiff -u -r1.27 -r1.28 src/external/bsd/blacklist/bin/conf.c cvs rdiff -u -r1.30 -r1.31 src/external/bsd/blacklist/lib/bl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/blacklist/bin/blacklistd.c diff -u src/external/bsd/blacklist/bin/blacklistd.c:1.42 src/external/bsd/blacklist/bin/blacklistd.c:1.43 --- src/external/bsd/blacklist/bin/blacklistd.c:1.42 Wed Mar 11 02:33:18 2020 +++ src/external/bsd/blacklist/bin/blacklistd.c Thu Mar 12 11:31:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: blacklistd.c,v 1.42 2020/03/11 02:33:18 roy Exp $ */ +/* $NetBSD: blacklistd.c,v 1.43 2020/03/12 11:31:23 roy Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include "config.h" #endif #include <sys/cdefs.h> -__RCSID("$NetBSD: blacklistd.c,v 1.42 2020/03/11 02:33:18 roy Exp $"); +__RCSID("$NetBSD: blacklistd.c,v 1.43 2020/03/12 11:31:23 roy Exp $"); #include <sys/types.h> #include <sys/socket.h> @@ -119,14 +119,12 @@ getremoteaddress(bl_info_t *bi, struct s *rsl = sizeof(*rss); memset(rss, 0, *rsl); - if (bi->bi_fd != -1) { - if (getpeername(bi->bi_fd, (void *)rss, rsl) != -1) - return 0; - - if (errno != ENOTCONN) { - (*lfun)(LOG_ERR, "getpeername failed (%m)"); - return -1; - } + if (getpeername(bi->bi_fd, (void *)rss, rsl) != -1) + return 0; + + if (errno != ENOTCONN) { + (*lfun)(LOG_ERR, "getpeername failed (%m)"); + return -1; } if (bi->bi_slen == 0) { Index: src/external/bsd/blacklist/bin/conf.c diff -u src/external/bsd/blacklist/bin/conf.c:1.27 src/external/bsd/blacklist/bin/conf.c:1.28 --- src/external/bsd/blacklist/bin/conf.c:1.27 Wed Mar 11 02:12:08 2020 +++ src/external/bsd/blacklist/bin/conf.c Thu Mar 12 11:31:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: conf.c,v 1.27 2020/03/11 02:12:08 roy Exp $ */ +/* $NetBSD: conf.c,v 1.28 2020/03/12 11:31:23 roy Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -33,7 +33,7 @@ #endif #include <sys/cdefs.h> -__RCSID("$NetBSD: conf.c,v 1.27 2020/03/11 02:12:08 roy Exp $"); +__RCSID("$NetBSD: conf.c,v 1.28 2020/03/12 11:31:23 roy Exp $"); #include <stdio.h> #ifdef HAVE_LIBUTIL_H @@ -1009,14 +1009,6 @@ conf_find(int fd, uid_t uid, const struc char buf[BUFSIZ]; memset(cr, 0, sizeof(*cr)); - - if (fd == -1) { - cr->c_proto = FSTAR; - cr->c_port = FSTAR; - memcpy(&lss, rss, sizeof(lss)); - goto done_fd; - } - slen = sizeof(lss); memset(&lss, 0, slen); if (getsockname(fd, (void *)&lss, &slen) == -1) { @@ -1059,7 +1051,6 @@ conf_find(int fd, uid_t uid, const struc return NULL; } -done_fd: cr->c_ss = lss; cr->c_lmask = FSTAR; cr->c_uid = (int)uid; Index: src/external/bsd/blacklist/lib/bl.c diff -u src/external/bsd/blacklist/lib/bl.c:1.30 src/external/bsd/blacklist/lib/bl.c:1.31 --- src/external/bsd/blacklist/lib/bl.c:1.30 Wed Mar 11 02:12:08 2020 +++ src/external/bsd/blacklist/lib/bl.c Thu Mar 12 11:31:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bl.c,v 1.30 2020/03/11 02:12:08 roy Exp $ */ +/* $NetBSD: bl.c,v 1.31 2020/03/12 11:31:23 roy Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -33,7 +33,7 @@ #endif #include <sys/cdefs.h> -__RCSID("$NetBSD: bl.c,v 1.30 2020/03/11 02:12:08 roy Exp $"); +__RCSID("$NetBSD: bl.c,v 1.31 2020/03/12 11:31:23 roy Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -384,6 +384,7 @@ bl_send(bl_t b, bl_type_t e, int pfd, co if (bl_getsock(b, &ub.bl.bl_ss, sa, slen, ctx) == -1) return -1; + ub.bl.bl_salen = slen; memcpy(ub.bl.bl_data, ctx, ctxlen); @@ -393,17 +394,15 @@ bl_send(bl_t b, bl_type_t e, int pfd, co msg.msg_iovlen = 1; msg.msg_flags = 0; - if (pfd != -1) { - msg.msg_control = ua.ctrl; - msg.msg_controllen = sizeof(ua.ctrl); - - cmsg = CMSG_FIRSTHDR(&msg); - cmsg->cmsg_len = CMSG_LEN(sizeof(int)); - cmsg->cmsg_level = SOL_SOCKET; - cmsg->cmsg_type = SCM_RIGHTS; + msg.msg_control = ua.ctrl; + msg.msg_controllen = sizeof(ua.ctrl); + + cmsg = CMSG_FIRSTHDR(&msg); + cmsg->cmsg_len = CMSG_LEN(sizeof(int)); + cmsg->cmsg_level = SOL_SOCKET; + cmsg->cmsg_type = SCM_RIGHTS; - memcpy(CMSG_DATA(cmsg), &pfd, sizeof(pfd)); - } + memcpy(CMSG_DATA(cmsg), &pfd, sizeof(pfd)); tried = 0; again: @@ -495,15 +494,14 @@ bl_recv(bl_t b) } - if (!(got & GOT_FD)) - bi->bi_fd = -1; - + if (got != (GOT_CRED|GOT_FD)) { + bl_log(b->b_fun, LOG_ERR, "message missing %s %s", #if GOT_CRED != 0 - if (!(got & GOT_CRED)) { - bl_log(b->b_fun, LOG_ERR, "message missing cred"); + (got & GOT_CRED) == 0 ? "cred" : +#endif + "", (got & GOT_FD) == 0 ? "fd" : ""); return NULL; } -#endif if ((size_t)rlen <= sizeof(ub.bl)) { bl_log(b->b_fun, LOG_ERR, "message too short %zd", rlen);