Module Name: src Committed By: maxv Date: Mon Feb 12 08:08:28 UTC 2018
Modified Files: src/sys/netinet: tcp_input.c tcp_var.h Log Message: Remove the 'm' argument from syn_cache_respond(); all it does with it is freeing it, so free in the caller instead. To generate a diff of this commit: cvs rdiff -u -r1.376 -r1.377 src/sys/netinet/tcp_input.c cvs rdiff -u -r1.182 -r1.183 src/sys/netinet/tcp_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet/tcp_input.c diff -u src/sys/netinet/tcp_input.c:1.376 src/sys/netinet/tcp_input.c:1.377 --- src/sys/netinet/tcp_input.c:1.376 Mon Feb 12 08:03:42 2018 +++ src/sys/netinet/tcp_input.c Mon Feb 12 08:08:28 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_input.c,v 1.376 2018/02/12 08:03:42 maxv Exp $ */ +/* $NetBSD: tcp_input.c,v 1.377 2018/02/12 08:08:28 maxv Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -148,7 +148,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.376 2018/02/12 08:03:42 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.377 2018/02/12 08:08:28 maxv Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -3749,7 +3749,7 @@ syn_cache_timer(void *arg) goto dropit; TCP_STATINC(TCP_STAT_SC_RETRANSMITTED); - (void) syn_cache_respond(sc, NULL); + (void)syn_cache_respond(sc); /* Advance the timer back-off. */ sc->sc_rxtshift++; @@ -3884,7 +3884,8 @@ syn_cache_get(struct sockaddr *src, stru if ((th->th_ack != sc->sc_iss + 1) || SEQ_LEQ(th->th_seq, sc->sc_irs) || SEQ_GT(th->th_seq, sc->sc_irs + 1 + sc->sc_win)) { - (void) syn_cache_respond(sc, m); + m_freem(m); + (void)syn_cache_respond(sc); splx(s); return ((struct socket *)(-1)); } @@ -4302,7 +4303,8 @@ syn_cache_add(struct sockaddr *src, stru sc->sc_ipopts = ipopts; } sc->sc_timestamp = tb.ts_recent; - if (syn_cache_respond(sc, m) == 0) { + m_freem(m); + if (syn_cache_respond(sc) == 0) { uint64_t *tcps = TCP_STAT_GETREF(); tcps[TCP_STAT_SNDACKS]++; tcps[TCP_STAT_SNDTOTAL]++; @@ -4411,7 +4413,8 @@ syn_cache_add(struct sockaddr *src, stru sc->sc_flags |= SCF_SIGNATURE; #endif sc->sc_tp = tp; - if (syn_cache_respond(sc, m) == 0) { + m_freem(m); + if (syn_cache_respond(sc) == 0) { uint64_t *tcps = TCP_STAT_GETREF(); tcps[TCP_STAT_SNDACKS]++; tcps[TCP_STAT_SNDTOTAL]++; @@ -4438,7 +4441,7 @@ syn_cache_add(struct sockaddr *src, stru */ int -syn_cache_respond(struct syn_cache *sc, struct mbuf *m) +syn_cache_respond(struct syn_cache *sc) { #ifdef INET6 struct rtentry *rt = NULL; @@ -4453,6 +4456,7 @@ syn_cache_respond(struct syn_cache *sc, #endif struct tcpcb *tp = NULL; struct tcphdr *th; + struct mbuf *m; u_int hlen; #ifdef TCP_SIGNATURE struct secasvar *sav = NULL; @@ -4470,8 +4474,6 @@ syn_cache_respond(struct syn_cache *sc, break; #endif default: - if (m) - m_freem(m); return (EAFNOSUPPORT); } @@ -4481,8 +4483,6 @@ syn_cache_respond(struct syn_cache *sc, /* * Create the IP+TCP header from scratch. */ - if (m) - m_freem(m); #ifdef DIAGNOSTIC if (max_linkhdr + tlen > MCLBYTES) return ENOBUFS; Index: src/sys/netinet/tcp_var.h diff -u src/sys/netinet/tcp_var.h:1.182 src/sys/netinet/tcp_var.h:1.183 --- src/sys/netinet/tcp_var.h:1.182 Fri Jan 19 07:53:01 2018 +++ src/sys/netinet/tcp_var.h Mon Feb 12 08:08:28 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_var.h,v 1.182 2018/01/19 07:53:01 ozaki-r Exp $ */ +/* $NetBSD: tcp_var.h,v 1.183 2018/02/12 08:08:28 maxv Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -968,7 +968,7 @@ struct syn_cache *syn_cache_lookup(const struct syn_cache_head **); void syn_cache_reset(struct sockaddr *, struct sockaddr *, struct tcphdr *); -int syn_cache_respond(struct syn_cache *, struct mbuf *); +int syn_cache_respond(struct syn_cache *); void syn_cache_cleanup(struct tcpcb *); int tcp_input_checksum(int, struct mbuf *, const struct tcphdr *, int, int,