diff options
Diffstat (limited to 'net/ipv4/icmp.c')
| -rw-r--r-- | net/ipv4/icmp.c | 9 | 
1 files changed, 2 insertions, 7 deletions
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 1617604c9284..695979b7ef6d 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -429,14 +429,11 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb)  	icmp_param->data.icmph.checksum = 0; +	ipcm_init(&ipc);  	inet->tos = ip_hdr(skb)->tos;  	sk->sk_mark = mark;  	daddr = ipc.addr = ip_hdr(skb)->saddr;  	saddr = fib_compute_spec_dst(skb); -	ipc.opt = NULL; -	ipc.tx_flags = 0; -	ipc.ttl = 0; -	ipc.tos = -1;  	if (icmp_param->replyopts.opt.opt.optlen) {  		ipc.opt = &icmp_param->replyopts.opt; @@ -710,11 +707,9 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)  	icmp_param.offset = skb_network_offset(skb_in);  	inet_sk(sk)->tos = tos;  	sk->sk_mark = mark; +	ipcm_init(&ipc);  	ipc.addr = iph->saddr;  	ipc.opt = &icmp_param.replyopts.opt; -	ipc.tx_flags = 0; -	ipc.ttl = 0; -	ipc.tos = -1;  	rt = icmp_route_lookup(net, &fl4, skb_in, iph, saddr, tos, mark,  			       type, code, &icmp_param);  |