Reported-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner lindner_marek@yahoo.de --- 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;
On 2013-05-07 13:25, Marek Lindner wrote:
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;
On Wednesday, May 08, 2013 12:46:53 Martin Hundebøll wrote:
On 2013-05-07 13:25, Marek Lindner wrote:
Reported-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner lindner_marek@yahoo.de
Acked-by: Martin Hundebøll martin@hundeboll.net
Applied in revision d22ebef.
Regards, Marek
b.a.t.m.a.n@lists.open-mesh.org