blob: b93367265d35b204dd43c595a7b1777de05cbaad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
--- sys/netinet/in_mcast.c.orig 2009-08-03 08:13:06.000000000 +0000
+++ sys/netinet/in_mcast.c 2009-09-09 01:35:06.000000000 +0000
@@ -1964,4 +1964,8 @@
if (idx == -1) {
is_new = 1;
+ } else if (sopt->sopt_name == IP_ADD_MEMBERSHIP) {
+ /* Trying to join the same Any-source group again. */
+ error = EADDRINUSE;
+ goto out_inp_locked;
} else {
inm = imo->imo_membership[idx];
@@ -2139,6 +2143,9 @@
}
- if (!in_nullhost(gsa->sin.sin_addr))
+ if (!in_nullhost(gsa->sin.sin_addr)) {
INADDR_TO_IFP(mreqs.imr_interface, ifp);
+ if (ifp == NULL)
+ return (EADDRNOTAVAIL);
+ }
CTR3(KTR_IGMPV3, "%s: imr_interface = %s, ifp = %p",
|