batman-adv: Always initialize fragment header priority

Message ID 20171129092502.10474-1-sven.eckelmann@openmesh.com (mailing list archive)
State Accepted, archived
Commit e45a75c82feae23a20d2744ccfde03780ccdafc7
Delegated to: Sven Eckelmann
Headers
Series batman-adv: Always initialize fragment header priority |

Commit Message

Sven Eckelmann Nov. 29, 2017, 9:25 a.m. UTC
  From: Sven Eckelmann <sven.eckelmann@open-mesh.com>

The batman-adv unuicast fragment header contains 3 bits for the priority of
the packet. These bits will be initialized when the skb->priority contains
a value between 256 and 263. But otherwise, the uninitialized bits from the
stack will be used.

Fixes: 4f241fcea704 ("batman-adv: Include frame priority in fragment header")
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
---
Cc: Andrew Lunn <andrew@lunn.ch>
---
 net/batman-adv/fragmentation.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Sven Eckelmann Dec. 1, 2017, 11:31 a.m. UTC | #1
On Mittwoch, 29. November 2017 10:25:02 CET Sven Eckelmann wrote:
> From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
> 
> The batman-adv unuicast fragment header contains 3 bits for the priority of
> the packet. These bits will be initialized when the skb->priority contains
> a value between 256 and 263. But otherwise, the uninitialized bits from the
> stack will be used.
> 
> Fixes: 4f241fcea704 ("batman-adv: Include frame priority in fragment header")
> Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
> ---
> Cc: Andrew Lunn <andrew@lunn.ch>

Applied in e45a75c82fea [1]

Kind regards,
	Sven

[1] https://git.open-mesh.org/batman-adv.git/commit/e45a75c82feae23a20d2744ccfde03780ccdafc7
  

Patch

diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
index a98cf1104a30a30e66fb6018bef59dea83dc4b7a..ebe6e38934e46ed5de4d30204e791dbe40285fcc 100644
--- a/net/batman-adv/fragmentation.c
+++ b/net/batman-adv/fragmentation.c
@@ -499,6 +499,8 @@  int batadv_frag_send_packet(struct sk_buff *skb,
 	 */
 	if (skb->priority >= 256 && skb->priority <= 263)
 		frag_header.priority = skb->priority - 256;
+	else
+		frag_header.priority = 0;
 
 	ether_addr_copy(frag_header.orig, primary_if->net_dev->dev_addr);
 	ether_addr_copy(frag_header.dest, orig_node->orig);