Skip to content

Commit

Permalink
netifd: fix IPv4 route target masking
Browse files Browse the repository at this point in the history
A previous commit supposed to mask out excess host bits in route targets
failed to correctly calculate the mask value, causing it to produce
improper results for certain mask lengths.

Fixes: openwrt/netifd#17
Signed-off-by: Jo-Philipp Wich <[email protected]>
  • Loading branch information
jow- committed Nov 14, 2023
1 parent 51bb178 commit 842932a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
2 changes: 1 addition & 1 deletion package/network/config/netifd/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk

PKG_NAME:=netifd
PKG_RELEASE:=1
PKG_RELEASE:=1.1

PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From 8587c074f1eb2064c42adb0a6aa5073f695ab89d Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <[email protected]>
Date: Tue, 14 Nov 2023 14:01:44 +0100
Subject: [PATCH] interface-ip: fix IPv4 route target masking

A previous commit supposed to mask out excess host bits in route targets
failed to correctly calculate the mask value, causing it to produce
improper results for certain mask lengths.

Fixes: #17
Fixes: 76eb342 ("interface-ip: mask out host bits in IPv4 route targets")
Signed-off-by: Jo-Philipp Wich <[email protected]>
---
interface-ip.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface-ip.c b/interface-ip.c
index d2fe385..28e7106 100644
--- a/interface-ip.c
+++ b/interface-ip.c
@@ -448,7 +448,7 @@ interface_ip_add_route(struct interface *iface, struct blob_attr *attr, bool v6)

/* Mask out IPv4 host bits to avoid "Invalid prefix for given prefix length" */
if (af == AF_INET && route->mask < 32)
- route->addr.in.s_addr &= ((1u << route->mask) - 1);
+ clear_if_addr(&route->addr, route->mask);
}

if ((cur = tb[ROUTE_GATEWAY]) != NULL) {
--
2.39.1

0 comments on commit 842932a

Please sign in to comment.