[maint,v2] batman-adv: fix elp packet data reservation

Message ID 20160823011303.18487-1-linus.luessing@c0d3.blue (mailing list archive)
State Accepted, archived
Commit 0b75ad13f3f38d8d84e2f4af37c0e13d77040bc1
Delegated to: Marek Lindner
Headers

Commit Message

Linus Lüssing Aug. 23, 2016, 1:13 a.m. UTC
  The skb_reserve() call only reserved headroom for the mac header, but
not the elp packet header itself.

Fixing this by using skb_put()'ing towards the skb tail instead of
skb_push()'ing towards the skb head.

Fixes: a4b88af77e28 ("batman-adv: ELP - adding basic infrastructure")
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
---

Changes in v2:
* just switch from skb_push() to skb_put()
  => skb_put() actually returns the right point in the skb and is
     equivalent to a second skb->data assignment after skb_put() in this case
* batamn-adv -> batman-adv
* explicitly directed to maint
 

 net/batman-adv/bat_v_elp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Sven Eckelmann Aug. 23, 2016, 6:32 a.m. UTC | #1
On Dienstag, 23. August 2016 03:13:03 CEST Linus Lüssing wrote:
> The skb_reserve() call only reserved headroom for the mac header, but
> not the elp packet header itself.
> 
> Fixing this by using skb_put()'ing towards the skb tail instead of
> skb_push()'ing towards the skb head.
> 
> Fixes: a4b88af77e28 ("batman-adv: ELP - adding basic infrastructure")
> Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
> ---

Reviewed-by: Sven Eckelmann <sven@narfation.org>

Kind regards,
	Sven
  
Marek Lindner Aug. 26, 2016, 9:13 a.m. UTC | #2
On Tuesday, August 23, 2016 8:32:26 AM HKT Sven Eckelmann wrote:
> On Dienstag, 23. August 2016 03:13:03 CEST Linus Lüssing wrote:
> > The skb_reserve() call only reserved headroom for the mac header, but
> > not the elp packet header itself.
> > 
> > Fixing this by using skb_put()'ing towards the skb tail instead of
> > skb_push()'ing towards the skb head.
> > 
> > Fixes: a4b88af77e28 ("batman-adv: ELP - adding basic infrastructure")
> > Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
> > ---
> 
> Reviewed-by: Sven Eckelmann <sven@narfation.org>

Applied in revision 0b75ad1.

Thanks,
Marek
  

Patch

diff --git a/net/batman-adv/bat_v_elp.c b/net/batman-adv/bat_v_elp.c
index df42eb1..63762b3 100644
--- a/net/batman-adv/bat_v_elp.c
+++ b/net/batman-adv/bat_v_elp.c
@@ -334,7 +334,7 @@  int batadv_v_elp_iface_enable(struct batadv_hard_iface *hard_iface)
 		goto out;
 
 	skb_reserve(hard_iface->bat_v.elp_skb, ETH_HLEN + NET_IP_ALIGN);
-	elp_buff = skb_push(hard_iface->bat_v.elp_skb, BATADV_ELP_HLEN);
+	elp_buff = skb_put(hard_iface->bat_v.elp_skb, BATADV_ELP_HLEN);
 	elp_packet = (struct batadv_elp_packet *)elp_buff;
 	memset(elp_packet, 0, BATADV_ELP_HLEN);