aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/udp_usrreq.c
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2004-08-06 02:08:31 +0000
committerRobert Watson <rwatson@FreeBSD.org>2004-08-06 02:08:31 +0000
commit9c1df6951ff968a632f4c6d04de59842857a9ec9 (patch)
tree29bfa2cbace46cc915032519c98724eea2bee7ee /sys/netinet/udp_usrreq.c
parent17dbe0f79f8da1e5d4aaf196162af2cd976bc9fe (diff)
Notes
Diffstat (limited to 'sys/netinet/udp_usrreq.c')
-rw-r--r--sys/netinet/udp_usrreq.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index fc146d4ac41b4..dc95f4bd2cb84 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -287,26 +287,23 @@ udp_input(m, off)
*/
last = NULL;
LIST_FOREACH(inp, &udb, inp_list) {
- INP_LOCK(inp);
- if (inp->inp_lport != uh->uh_dport) {
- docontinue:
- INP_UNLOCK(inp);
+ if (inp->inp_lport != uh->uh_dport)
continue;
- }
#ifdef INET6
if ((inp->inp_vflag & INP_IPV4) == 0)
- goto docontinue;
+ continue;
#endif
if (inp->inp_laddr.s_addr != INADDR_ANY) {
if (inp->inp_laddr.s_addr != ip->ip_dst.s_addr)
- goto docontinue;
+ continue;
}
if (inp->inp_faddr.s_addr != INADDR_ANY) {
if (inp->inp_faddr.s_addr !=
ip->ip_src.s_addr ||
inp->inp_fport != uh->uh_sport)
- goto docontinue;
+ continue;
}
+ INP_LOCK(inp);
/*
* Check multicast packets to make sure they are only
@@ -327,8 +324,10 @@ udp_input(m, off)
break;
}
}
- if (foundmship == 0)
- goto docontinue;
+ if (foundmship == 0) {
+ INP_UNLOCK(inp);
+ continue;
+ }
}
#undef NMSHIPS
#undef MSHIP