diff options
Diffstat (limited to 'net/ipv4/raw.c')
| -rw-r--r-- | net/ipv4/raw.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index a86c7ae71881..193db03540ad 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c | |||
| @@ -218,8 +218,10 @@ static void raw_err(struct sock *sk, struct sk_buff *skb, u32 info) | |||
| 218 | 218 | ||
| 219 | if (type == ICMP_DEST_UNREACH && code == ICMP_FRAG_NEEDED) | 219 | if (type == ICMP_DEST_UNREACH && code == ICMP_FRAG_NEEDED) |
| 220 | ipv4_sk_update_pmtu(skb, sk, info); | 220 | ipv4_sk_update_pmtu(skb, sk, info); |
| 221 | else if (type == ICMP_REDIRECT) | 221 | else if (type == ICMP_REDIRECT) { |
| 222 | ipv4_sk_redirect(skb, sk); | 222 | ipv4_sk_redirect(skb, sk); |
| 223 | return; | ||
| 224 | } | ||
| 223 | 225 | ||
| 224 | /* Report error on raw socket, if: | 226 | /* Report error on raw socket, if: |
| 225 | 1. User requested ip_recverr. | 227 | 1. User requested ip_recverr. |
| @@ -387,7 +389,7 @@ static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, | |||
| 387 | iph->check = 0; | 389 | iph->check = 0; |
| 388 | iph->tot_len = htons(length); | 390 | iph->tot_len = htons(length); |
| 389 | if (!iph->id) | 391 | if (!iph->id) |
| 390 | ip_select_ident(iph, &rt->dst, NULL); | 392 | ip_select_ident(skb, &rt->dst, NULL); |
| 391 | 393 | ||
| 392 | iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); | 394 | iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); |
| 393 | } | 395 | } |
