[PATCH] Fix masks in parse_sub.c, so that hosts are correctly matched.

[email protected] Thu, 19 Mar 2026 17:08:00 -0300
Newsgroups org.kernel.vger.autofs
Message-ID <[email protected]>
From: Thiago Becker <[email protected]>

In the case local address is 10.x.x.x and one of the replica addresses
is 138.x.x.x, MASK_A will make both equal, and get_priority will return
PROXIMITY_NET, which is not correct.

MASK_A = 0x7F000000 = 01111111 00000000 00000000 00000000
LOCAL  = 10.x.x.x   = 00001010 00000000 00000000 00000000
REMOTE = 138.x.x.x  = 10001010 00000000 00000000 00000000

Signed-off-by: Thiago Becker <[email protected]>
---
 lib/parse_subs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/parse_subs.c b/lib/parse_subs.c
index 2acb056b..1575e999 100644
--- a/lib/parse_subs.c
+++ b/lib/parse_subs.c
@@ -37,9 +37,9 @@
 static int volatile ifc_buf_len = MAX_IFC_BUF;
 static int volatile ifc_last_len = 0;
 
-#define MASK_A  0x7F000000
-#define MASK_B  0xBFFF0000
-#define MASK_C  0xDFFFFF00
+#define MASK_A  0xFF000000
+#define MASK_B  0xFFFF0000
+#define MASK_C  0xFFFFFF00
 
 /* Get numeric value of the n bits starting at position p */
 #define getbits(x, p, n)	((x >> (p + 1 - n)) & ~(~0 << n))
-- 
2.53.0