From owner-svn-src-all@freebsd.org Mon Nov 26 16:36:41 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4B2A3113BEF9; Mon, 26 Nov 2018 16:36:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E1D597BDCC; Mon, 26 Nov 2018 16:36:40 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C2D076849; Mon, 26 Nov 2018 16:36:40 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wAQGaeCO086302; Mon, 26 Nov 2018 16:36:40 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wAQGacQD086292; Mon, 26 Nov 2018 16:36:38 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201811261636.wAQGacQD086292@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 26 Nov 2018 16:36:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r340980 - in releng/12.0/sys: kern netinet netinet6 ofed/drivers/infiniband/ulp/sdp X-SVN-Group: releng X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in releng/12.0/sys: kern netinet netinet6 ofed/drivers/infiniband/ulp/sdp X-SVN-Commit-Revision: 340980 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E1D597BDCC X-Spamd-Result: default: False [1.84 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_SPAM_SHORT(0.57)[0.569,0]; NEURAL_SPAM_MEDIUM(0.61)[0.607,0]; NEURAL_SPAM_LONG(0.66)[0.661,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Nov 2018 16:36:41 -0000 Author: markj Date: Mon Nov 26 16:36:38 2018 New Revision: 340980 URL: https://svnweb.freebsd.org/changeset/base/340980 Log: MFstable/12 r340921: Plug some networking sysctl leaks. Approved by: re (gjb) Modified: releng/12.0/sys/kern/uipc_socket.c releng/12.0/sys/kern/uipc_usrreq.c releng/12.0/sys/netinet/in_pcb.c releng/12.0/sys/netinet/ip_divert.c releng/12.0/sys/netinet/raw_ip.c releng/12.0/sys/netinet/sctp_sysctl.c releng/12.0/sys/netinet/tcp_subr.c releng/12.0/sys/netinet/udp_usrreq.c releng/12.0/sys/netinet6/ip6_mroute.c releng/12.0/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Directory Properties: releng/12.0/ (props changed) Modified: releng/12.0/sys/kern/uipc_socket.c ============================================================================== --- releng/12.0/sys/kern/uipc_socket.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/kern/uipc_socket.c Mon Nov 26 16:36:38 2018 (r340980) @@ -4007,6 +4007,7 @@ void sotoxsocket(struct socket *so, struct xsocket *xso) { + bzero(xso, sizeof(*xso)); xso->xso_len = sizeof *xso; xso->xso_so = (uintptr_t)so; xso->so_type = so->so_type; @@ -4025,8 +4026,6 @@ sotoxsocket(struct socket *so, struct xsocket *xso) xso->so_incqlen = so->sol_incqlen; xso->so_qlimit = so->sol_qlimit; xso->so_oobmark = 0; - bzero(&xso->so_snd, sizeof(xso->so_snd)); - bzero(&xso->so_rcv, sizeof(xso->so_rcv)); } else { xso->so_state |= so->so_qstate; xso->so_qlen = xso->so_incqlen = xso->so_qlimit = 0; Modified: releng/12.0/sys/kern/uipc_usrreq.c ============================================================================== --- releng/12.0/sys/kern/uipc_usrreq.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/kern/uipc_usrreq.c Mon Nov 26 16:36:38 2018 (r340980) @@ -1812,7 +1812,7 @@ unp_pcblist(SYSCTL_HANDLER_ARGS) /* * OK, now we're committed to doing something. */ - xug = malloc(sizeof(*xug), M_TEMP, M_WAITOK); + xug = malloc(sizeof(*xug), M_TEMP, M_WAITOK | M_ZERO); UNP_LINK_RLOCK(); gencnt = unp_gencnt; n = unp_count; Modified: releng/12.0/sys/netinet/in_pcb.c ============================================================================== --- releng/12.0/sys/netinet/in_pcb.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/netinet/in_pcb.c Mon Nov 26 16:36:38 2018 (r340980) @@ -2904,11 +2904,10 @@ void in_pcbtoxinpcb(const struct inpcb *inp, struct xinpcb *xi) { + bzero(xi, sizeof(*xi)); xi->xi_len = sizeof(struct xinpcb); if (inp->inp_socket) sotoxsocket(inp->inp_socket, &xi->xi_socket); - else - bzero(&xi->xi_socket, sizeof(struct xsocket)); bcopy(&inp->inp_inc, &xi->inp_inc, sizeof(struct in_conninfo)); xi->inp_gencnt = inp->inp_gencnt; xi->inp_ppcb = (uintptr_t)inp->inp_ppcb; Modified: releng/12.0/sys/netinet/ip_divert.c ============================================================================== --- releng/12.0/sys/netinet/ip_divert.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/netinet/ip_divert.c Mon Nov 26 16:36:38 2018 (r340980) @@ -664,6 +664,7 @@ div_pcblist(SYSCTL_HANDLER_ARGS) if (error != 0) return (error); + bzero(&xig, sizeof(xig)); xig.xig_len = sizeof xig; xig.xig_count = n; xig.xig_gen = gencnt; Modified: releng/12.0/sys/netinet/raw_ip.c ============================================================================== --- releng/12.0/sys/netinet/raw_ip.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/netinet/raw_ip.c Mon Nov 26 16:36:38 2018 (r340980) @@ -1060,6 +1060,7 @@ rip_pcblist(SYSCTL_HANDLER_ARGS) n = V_ripcbinfo.ipi_count; INP_INFO_WUNLOCK(&V_ripcbinfo); + bzero(&xig, sizeof(xig)); xig.xig_len = sizeof xig; xig.xig_count = n; xig.xig_gen = gencnt; Modified: releng/12.0/sys/netinet/sctp_sysctl.c ============================================================================== --- releng/12.0/sys/netinet/sctp_sysctl.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/netinet/sctp_sysctl.c Mon Nov 26 16:36:38 2018 (r340980) @@ -395,6 +395,9 @@ sctp_sysctl_handle_assoclist(SYSCTL_HANDLER_ARGS) SCTP_LTRACE_ERR_RET(NULL, NULL, NULL, SCTP_FROM_SCTP_SYSCTL, EPERM); return (EPERM); } + memset(&xinpcb, 0, sizeof(xinpcb)); + memset(&xstcb, 0, sizeof(xstcb)); + memset(&xraddr, 0, sizeof(xraddr)); LIST_FOREACH(inp, &SCTP_BASE_INFO(listhead), sctp_list) { SCTP_INP_RLOCK(inp); if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) { Modified: releng/12.0/sys/netinet/tcp_subr.c ============================================================================== --- releng/12.0/sys/netinet/tcp_subr.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/netinet/tcp_subr.c Mon Nov 26 16:36:38 2018 (r340980) @@ -556,6 +556,7 @@ sysctl_net_inet_list_func_info(SYSCTL_HANDLER_ARGS) cnt++; #endif if (req->oldptr != NULL) { + bzero(&tfi, sizeof(tfi)); tfi.tfi_refcnt = f->tf_fb->tfb_refcnt; tfi.tfi_id = f->tf_fb->tfb_id; (void)strncpy(tfi.tfi_alias, f->tf_name, @@ -2154,6 +2155,7 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS) if (error != 0) return (error); + bzero(&xig, sizeof(xig)); xig.xig_len = sizeof xig; xig.xig_count = n + m; xig.xig_gen = gencnt; @@ -3215,8 +3217,8 @@ tcp_inptoxtp(const struct inpcb *inp, struct xtcpcb *x struct tcpcb *tp = intotcpcb(inp); sbintime_t now; + bzero(xt, sizeof(*xt)); if (inp->inp_flags & INP_TIMEWAIT) { - bzero(xt, sizeof(struct xtcpcb)); xt->t_state = TCPS_TIME_WAIT; } else { xt->t_state = tp->t_state; @@ -3244,7 +3246,6 @@ tcp_inptoxtp(const struct inpcb *inp, struct xtcpcb *x bcopy(tp->t_fb->tfb_tcp_block_name, xt->xt_stack, TCP_FUNCTION_NAME_LEN_MAX); - bzero(xt->xt_logid, TCP_LOG_ID_LEN); #ifdef TCP_BLACKBOX (void)tcp_log_get_id(tp, xt->xt_logid); #endif Modified: releng/12.0/sys/netinet/udp_usrreq.c ============================================================================== --- releng/12.0/sys/netinet/udp_usrreq.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/netinet/udp_usrreq.c Mon Nov 26 16:36:38 2018 (r340980) @@ -887,6 +887,7 @@ udp_pcblist(SYSCTL_HANDLER_ARGS) if (error != 0) return (error); + bzero(&xig, sizeof(xig)); xig.xig_len = sizeof xig; xig.xig_count = n; xig.xig_gen = gencnt; Modified: releng/12.0/sys/netinet6/ip6_mroute.c ============================================================================== --- releng/12.0/sys/netinet6/ip6_mroute.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/netinet6/ip6_mroute.c Mon Nov 26 16:36:38 2018 (r340980) @@ -203,7 +203,8 @@ sysctl_mif6table(SYSCTL_HANDLER_ARGS) struct mif6_sctl *out; int error; - out = malloc(sizeof(struct mif6_sctl) * MAXMIFS, M_TEMP, M_WAITOK); + out = malloc(sizeof(struct mif6_sctl) * MAXMIFS, M_TEMP, + M_WAITOK | M_ZERO); for (int i = 0; i < MAXMIFS; i++) { out[i].m6_flags = mif6table[i].m6_flags; out[i].m6_rate_limit = mif6table[i].m6_rate_limit; Modified: releng/12.0/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c ============================================================================== --- releng/12.0/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Mon Nov 26 16:10:20 2018 (r340979) +++ releng/12.0/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Mon Nov 26 16:36:38 2018 (r340980) @@ -1810,6 +1810,7 @@ sdp_pcblist(SYSCTL_HANDLER_ARGS) if (error != 0) return (error); + bzero(&xig, sizeof(xig)); xig.xig_len = sizeof xig; xig.xig_count = n; xig.xig_gen = 0;