Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aba6096b authored by YOSHIFUJI Hideaki's avatar YOSHIFUJI Hideaki
Browse files

[IPV6]: Kill several warnings without CONFIG_IPV6_MROUTE.



Pointed out by Andrew Morton <akpm@linux-foundation.org>.

Signed-off-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
parent c0b8c32b
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -262,21 +262,23 @@ int ip6_mc_input(struct sk_buff *skb)
			 * is for MLD (0x0000).
			 */
			if ((ptr[2] | ptr[3]) == 0) {
				deliver = 0;

				if (!ipv6_ext_hdr(nexthdr)) {
					/* BUG */
					goto discard;
					goto out;
				}
				offset = ipv6_skip_exthdr(skb, sizeof(*hdr),
							  &nexthdr);
				if (offset < 0)
					goto discard;
					goto out;

				if (nexthdr != IPPROTO_ICMPV6)
					goto discard;
					goto out;

				if (!pskb_may_pull(skb, (skb_network_header(skb) +
						   offset + 1 - skb->data)))
					goto discard;
					goto out;

				icmp6 = (struct icmp6hdr *)(skb_network_header(skb) + offset);

@@ -285,12 +287,9 @@ int ip6_mc_input(struct sk_buff *skb)
				case ICMPV6_MGM_REPORT:
				case ICMPV6_MGM_REDUCTION:
				case ICMPV6_MLD2_REPORT:
					deliver = 1;
					break;
				default:
					/* Bogus */
					goto discard;
				}
				deliver = 1;
				goto out;
			}
			/* unknown RA - process it normally */
@@ -308,15 +307,14 @@ int ip6_mc_input(struct sk_buff *skb)
			ip6_mr_input(skb2);
		}
	}
#endif
out:
	if (likely(deliver)) {
#endif
	if (likely(deliver))
		ip6_input(skb);
		return 0;
	}
discard:
	else {
		/* discard */
		kfree_skb(skb);
	}

	return 0;
}