Repository : ssh://git@open-mesh.org/batman-adv
On branch : maint
commit eabdc3175b1d119cd673f36d06264cddb4803ace Author: Antonio Quartulli antonio@meshcoding.com Date: Thu Jan 30 00:12:24 2014 +0100
batman-adv: properly check pskb_may_pull return value
pskb_may_pull() returns 1 on success and 0 in case of failure, therefore checking for the return value being negative does not make sense at all.
This way if the function fails we will probably read beyond the current skb data buffer. Fix this by doing the proper check.
Signed-off-by: Antonio Quartulli antonio@meshcoding.com Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
eabdc3175b1d119cd673f36d06264cddb4803ace routing.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/routing.c b/routing.c index f28920f..f7579d0 100644 --- a/routing.c +++ b/routing.c @@ -833,7 +833,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv, int is_old_ttvn;
/* check if there is enough data before accessing it */ - if (pskb_may_pull(skb, hdr_len + ETH_HLEN) < 0) + if (!pskb_may_pull(skb, hdr_len + ETH_HLEN)) return 0;
/* create a copy of the skb (in case of for re-routing) to modify it. */