diff options
Diffstat (limited to 'net/batman-adv/routing.c')
| -rw-r--r-- | net/batman-adv/routing.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c index 939fc01371df..376b4cc6ca82 100644 --- a/net/batman-adv/routing.c +++ b/net/batman-adv/routing.c | |||
| @@ -1124,8 +1124,14 @@ int batadv_recv_bcast_packet(struct sk_buff *skb, | |||
| 1124 | 1124 | ||
| 1125 | spin_unlock_bh(&orig_node->bcast_seqno_lock); | 1125 | spin_unlock_bh(&orig_node->bcast_seqno_lock); |
| 1126 | 1126 | ||
| 1127 | /* keep skb linear for crc calculation */ | ||
| 1128 | if (skb_linearize(skb) < 0) | ||
| 1129 | goto out; | ||
| 1130 | |||
| 1131 | bcast_packet = (struct batadv_bcast_packet *)skb->data; | ||
| 1132 | |||
| 1127 | /* check whether this has been sent by another originator before */ | 1133 | /* check whether this has been sent by another originator before */ |
| 1128 | if (batadv_bla_check_bcast_duplist(bat_priv, bcast_packet, hdr_size)) | 1134 | if (batadv_bla_check_bcast_duplist(bat_priv, bcast_packet, skb->len)) |
| 1129 | goto out; | 1135 | goto out; |
| 1130 | 1136 | ||
| 1131 | /* rebroadcast packet */ | 1137 | /* rebroadcast packet */ |
