[maint] batman-adv: properly check pskb_may_pull return value
Commit Message
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.
Fix this by doing the proper check.
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
routing.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 30/01/14 00:12, Antonio Quartulli wrote:
> 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.
>
I should have added:
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>
On Thursday 30 January 2014 00:15:10 Antonio Quartulli wrote:
> On 30/01/14 00:12, Antonio Quartulli wrote:
> > 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.
> >
> >
>
> I should have added:
>
> This way if the function fails we will probably read beyond the current
> skb data buffer.
Applied in revision eabdc31.
Thanks,
Marek
@@ -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. */