patch-2.3.41 linux/net/ipv6/mcast.c
Next file: linux/net/ipv6/raw.c
Previous file: linux/net/ipv6/ipv6_sockglue.c
Back to the patch index
Back to the overall index
- Lines: 39
- Date:
Sat Jan 22 11:54:58 2000
- Orig file:
v2.3.40/linux/net/ipv6/mcast.c
- Orig date:
Tue Jan 11 22:31:46 2000
diff -u --recursive --new-file v2.3.40/linux/net/ipv6/mcast.c linux/net/ipv6/mcast.c
@@ -5,7 +5,7 @@
* Authors:
* Pedro Roque <roque@di.fc.ul.pt>
*
- * $Id: mcast.c,v 1.28 2000/01/09 02:19:50 davem Exp $
+ * $Id: mcast.c,v 1.29 2000/01/18 08:24:21 davem Exp $
*
* Based on linux/ipv4/igmp.c and linux/ipv4/ip_sockglue.c
*
@@ -500,7 +500,8 @@
if (dev->hard_header) {
unsigned char ha[MAX_ADDR_LEN];
ndisc_mc_map(snd_addr, ha, dev, 1);
- dev->hard_header(skb, dev, ETH_P_IPV6, ha, NULL, full_len);
+ if (dev->hard_header(skb, dev, ETH_P_IPV6, ha, NULL, full_len) < 0)
+ goto out;
}
if (ipv6_get_lladdr(dev, &addr_buf)) {
@@ -508,7 +509,7 @@
printk(KERN_DEBUG "igmp6: %s no linklocal address\n",
dev->name);
#endif
- return;
+ goto out;
}
ip6_nd_hdr(sk, skb, dev, &addr_buf, snd_addr, NEXTHDR_HOP, payload_len);
@@ -532,6 +533,10 @@
else
ICMP6_INC_STATS(Icmp6OutGroupMembResponses);
ICMP6_INC_STATS(Icmp6OutMsgs);
+ return;
+
+out:
+ kfree_skb(skb);
}
static void igmp6_join_group(struct ifmcaddr6 *ma)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)