45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From d22ebef1431aab13099370b89afa4ba55eb95c35 Mon Sep 17 00:00:00 2001
|
|
From: Marek Lindner <lindner_marek@yahoo.de>
|
|
Date: Tue, 7 May 2013 19:25:02 +0800
|
|
Subject: [PATCH 04/10] batman-adv: check return value of pskb_trim_rcsum()
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Reported-by: Sven Eckelmann <sven@narfation.org>
|
|
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
|
|
Acked-by: Martin Hundebøll <martin@hundeboll.net>
|
|
---
|
|
network-coding.c | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/network-coding.c b/network-coding.c
|
|
index f7c5430..e84629e 100644
|
|
--- a/network-coding.c
|
|
+++ b/network-coding.c
|
|
@@ -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;
|
|
--
|
|
1.7.10.4
|
|
|