[maint] batman-adv: check return value of pskb_trim_rcsum()

Message ID 1367925902-31578-1-git-send-email-lindner_marek@yahoo.de (mailing list archive)
State Accepted, archived
Commit d22ebef1431aab13099370b89afa4ba55eb95c35
Headers

Commit Message

Marek Lindner May 7, 2013, 11:25 a.m. UTC
  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(-)
  

Comments

Martin Hundebøll May 8, 2013, 4:46 a.m. UTC | #1
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;
>
  
Marek Lindner May 9, 2013, 7:50 a.m. UTC | #2
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
  

Patch

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;