Fix a bug where Multicast packets sent from a
udp endpoint may end up echoing back to the sender even with OUT joining the multi-cast group. Reviewed by: gnn, bms, bz? Obtained from: deischen (with help from)
This commit is contained in:
parent
fbfbce8ae9
commit
a38b1c8c5e
@ -479,11 +479,13 @@ udp_input(struct mbuf *m, int off)
|
|||||||
* and source-specific multicast. [RFC3678]
|
* and source-specific multicast. [RFC3678]
|
||||||
*/
|
*/
|
||||||
imo = inp->inp_moptions;
|
imo = inp->inp_moptions;
|
||||||
if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) &&
|
if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) {
|
||||||
imo != NULL) {
|
|
||||||
struct sockaddr_in group;
|
struct sockaddr_in group;
|
||||||
int blocked;
|
int blocked;
|
||||||
|
if(imo == NULL) {
|
||||||
|
INP_RUNLOCK(inp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
bzero(&group, sizeof(struct sockaddr_in));
|
bzero(&group, sizeof(struct sockaddr_in));
|
||||||
group.sin_len = sizeof(struct sockaddr_in);
|
group.sin_len = sizeof(struct sockaddr_in);
|
||||||
group.sin_family = AF_INET;
|
group.sin_family = AF_INET;
|
||||||
|
Loading…
Reference in New Issue
Block a user