From 3de4c66a28621a05b46c9c6f843828c67a9ecf0d Mon Sep 17 00:00:00 2001 From: bluhm Date: Mon, 27 Jun 2016 12:25:27 +0000 Subject: [PATCH] The variable swapping between inp, newinp and oldinpcb in syn_cache_get() was overly complicated. Simplify the code without functional change. OK jca@ --- sys/netinet/tcp_input.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index afe5c807a85..5c778028e19 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_input.c,v 1.319 2016/06/09 23:09:51 bluhm Exp $ */ +/* $OpenBSD: tcp_input.c,v 1.320 2016/06/27 12:25:27 bluhm Exp $ */ /* $NetBSD: tcp_input.c,v 1.23 1996/02/13 23:43:44 christos Exp $ */ /* @@ -3627,7 +3627,7 @@ syn_cache_get(struct sockaddr *src, struct sockaddr *dst, struct tcphdr *th, { struct syn_cache *sc; struct syn_cache_head *scp; - struct inpcb *inp = NULL; + struct inpcb *inp, *oldinp; struct tcpcb *tp = NULL; struct mbuf *am; int s; @@ -3670,7 +3670,8 @@ syn_cache_get(struct sockaddr *src, struct sockaddr *dst, struct tcphdr *th, if (so == NULL) goto resetandabort; - inp = sotoinpcb(oso); + oldinp = sotoinpcb(oso); + inp = sotoinpcb(so); #ifdef IPSEC /* @@ -3678,30 +3679,18 @@ syn_cache_get(struct sockaddr *src, struct sockaddr *dst, struct tcphdr *th, * from the old pcb. Ditto for any other * IPsec-related information. */ - { - struct inpcb *newinp = sotoinpcb(so); - memcpy(newinp->inp_seclevel, inp->inp_seclevel, - sizeof(inp->inp_seclevel)); - } + memcpy(inp->inp_seclevel, oldinp->inp_seclevel, + sizeof(oldinp->inp_seclevel)); #endif /* IPSEC */ #ifdef INET6 /* * inp still has the OLD in_pcb stuff, set the * v6-related flags on the new guy, too. */ - { - int flags = inp->inp_flags; - struct inpcb *oldinpcb = inp; - - inp = sotoinpcb(so); - inp->inp_flags |= (flags & INP_IPV6); - if ((inp->inp_flags & INP_IPV6) != 0) { - inp->inp_ipv6.ip6_hlim = - oldinpcb->inp_ipv6.ip6_hlim; - } + inp->inp_flags |= (oldinp->inp_flags & INP_IPV6); + if (inp->inp_flags & INP_IPV6) { + inp->inp_ipv6.ip6_hlim = oldinp->inp_ipv6.ip6_hlim; } -#else /* INET6 */ - inp = sotoinpcb(so); #endif /* INET6 */ #if NPF > 0 -- 2.20.1