mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
batman-adv: check return value of pskb_trim_rcsum()
Reported-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> Acked-by: Martin Hundebøll <martin@hundeboll.net> Signed-off-by: Antonio Quartulli <ordex@autistici.org>
This commit is contained in:
parent
293c9c1cef
commit
7da19971a9
@ -1514,6 +1514,7 @@ batadv_nc_skb_decode_packet(struct batadv_priv *bat_priv, struct sk_buff *skb,
|
||||
struct ethhdr *ethhdr, ethhdr_tmp;
|
||||
uint8_t *orig_dest, ttl, ttvn;
|
||||
unsigned int coding_len;
|
||||
int err;
|
||||
|
||||
/* Save headers temporarily */
|
||||
memcpy(&coded_packet_tmp, skb->data, sizeof(coded_packet_tmp));
|
||||
@ -1568,8 +1569,11 @@ batadv_nc_skb_decode_packet(struct batadv_priv *bat_priv, struct sk_buff *skb,
|
||||
coding_len);
|
||||
|
||||
/* Resize decoded skb if decoded with larger packet */
|
||||
if (nc_packet->skb->len > coding_len + h_size)
|
||||
pskb_trim_rcsum(skb, coding_len + h_size);
|
||||
if (nc_packet->skb->len > coding_len + h_size) {
|
||||
err = pskb_trim_rcsum(skb, coding_len + h_size);
|
||||
if (err)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Create decoded unicast packet */
|
||||
unicast_packet = (struct batadv_unicast_packet *)skb->data;
|
||||
|
Loading…
Reference in New Issue
Block a user