diff options
Diffstat (limited to 'net/xfrm/xfrm_input.c')
-rw-r--r-- | net/xfrm/xfrm_input.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c index 2515cd2bc5db..8ac9d32fb79d 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c | |||
@@ -429,7 +429,8 @@ resume: | |||
429 | nf_reset(skb); | 429 | nf_reset(skb); |
430 | 430 | ||
431 | if (decaps) { | 431 | if (decaps) { |
432 | skb->sp->olen = 0; | 432 | if (skb->sp) |
433 | skb->sp->olen = 0; | ||
433 | skb_dst_drop(skb); | 434 | skb_dst_drop(skb); |
434 | gro_cells_receive(&gro_cells, skb); | 435 | gro_cells_receive(&gro_cells, skb); |
435 | return 0; | 436 | return 0; |
@@ -440,7 +441,8 @@ resume: | |||
440 | 441 | ||
441 | err = x->inner_mode->afinfo->transport_finish(skb, xfrm_gro || async); | 442 | err = x->inner_mode->afinfo->transport_finish(skb, xfrm_gro || async); |
442 | if (xfrm_gro) { | 443 | if (xfrm_gro) { |
443 | skb->sp->olen = 0; | 444 | if (skb->sp) |
445 | skb->sp->olen = 0; | ||
444 | skb_dst_drop(skb); | 446 | skb_dst_drop(skb); |
445 | gro_cells_receive(&gro_cells, skb); | 447 | gro_cells_receive(&gro_cells, skb); |
446 | return err; | 448 | return err; |