View | Details | Raw Unified | Return to bug 77934
Collapse All | Expand All

(-)../../x/src/sys/netinet6/icmp6.c (-4 / +6 lines)
Lines 167-173 static int ni6_addrs __P((struct icmp6_n Link Here
167
			  struct ifnet **, char *));
167
			  struct ifnet **, char *));
168
static int ni6_store_addrs __P((struct icmp6_nodeinfo *, struct icmp6_nodeinfo *,
168
static int ni6_store_addrs __P((struct icmp6_nodeinfo *, struct icmp6_nodeinfo *,
169
				struct ifnet *, int));
169
				struct ifnet *, int));
170
static int icmp6_notify_error __P((struct mbuf *, int, int, int));
170
static int icmp6_notify_error __P((struct mbuf **, int, int, int));
171
171
172
#ifdef COMPAT_RFC1885
172
#ifdef COMPAT_RFC1885
173
static struct route_in6 icmp6_reflect_rt;
173
static struct route_in6 icmp6_reflect_rt;
Lines 846-852 icmp6_input(mp, offp, proto) Link Here
846
			break;
846
			break;
847
		}
847
		}
848
	deliver:
848
	deliver:
849
		if (icmp6_notify_error(m, off, icmp6len, code)) {
849
		if (icmp6_notify_error(&m, off, icmp6len, code)) {
850
			/* In this case, m should've been freed. */
850
			/* In this case, m should've been freed. */
851
			return(IPPROTO_DONE);
851
			return(IPPROTO_DONE);
852
		}
852
		}
Lines 872-881 icmp6_input(mp, offp, proto) Link Here
872
}
872
}
873
873
874
static int
874
static int
875
icmp6_notify_error(m, off, icmp6len, code)
875
icmp6_notify_error(mp, off, icmp6len, code)
876
	struct mbuf *m;
876
	struct mbuf **mp;
877
	int off, icmp6len;
877
	int off, icmp6len;
878
{
878
{
879
 	struct mbuf *m = *mp;
879
	struct icmp6_hdr *icmp6;
880
	struct icmp6_hdr *icmp6;
880
	struct ip6_hdr *eip6;
881
	struct ip6_hdr *eip6;
881
	u_int32_t notifymtu;
882
	u_int32_t notifymtu;
Lines 1114-1119 icmp6_notify_error(m, off, icmp6len, cod Link Here
1114
					  &ip6cp);
1115
					  &ip6cp);
1115
		}
1116
		}
1116
	}
1117
	}
1118
	*mp = m;
1117
	return(0);
1119
	return(0);
1118
1120
1119
  freeit:
1121
  freeit:
(-)../../x/src/sys/netinet6/ip6_output.c (-2 / +2 lines)
Lines 857-864 skip_ipsec2:; Link Here
857
	 */
857
	 */
858
	if (exthdrs.ip6e_hbh) {
858
	if (exthdrs.ip6e_hbh) {
859
		struct ip6_hbh *hbh = mtod(exthdrs.ip6e_hbh, struct ip6_hbh *);
859
		struct ip6_hbh *hbh = mtod(exthdrs.ip6e_hbh, struct ip6_hbh *);
860
		u_int32_t dummy1; /* XXX unused */
860
		u_int32_t dummy1 = 0; /* XXX unused */
861
		u_int32_t dummy2; /* XXX unused */
861
		u_int32_t dummy2 = 0; /* XXX unused */
862
862
863
#ifdef DIAGNOSTIC
863
#ifdef DIAGNOSTIC
864
		if ((hbh->ip6h_len + 1) << 3 > exthdrs.ip6e_hbh->m_len)
864
		if ((hbh->ip6h_len + 1) << 3 > exthdrs.ip6e_hbh->m_len)

Return to bug 77934