From 4129764ecaebf05a33e22d8d95bb3d8deaa14c14 Mon Sep 17 00:00:00 2001
From: Stefano Brivio <sbrivio@redhat.com>
Date: Wed, 9 Nov 2022 18:35:17 +0100
Subject: conf: Fix mask calculation from prefix_len in conf_print()

Reported-by: Paul Holzinger <pholzing@redhat.com>
Fixes: dd09cceaee21 ("Minor improvements to IPv4 netmask handling")
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
---
 conf.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/conf.c b/conf.c
index bfecdff..1adcf83 100644
--- a/conf.c
+++ b/conf.c
@@ -884,7 +884,10 @@ static void conf_print(const struct ctx *c)
 
 	if (c->ifi4) {
 		if (!c->no_dhcp) {
-			uint32_t mask = htonl(0xffffffff << c->ip4.prefix_len);
+			uint32_t mask;
+
+			mask = htonl(0xffffffff << (32 - c->ip4.prefix_len));
+
 			info("DHCP:");
 			info("    assign: %s",
 			     inet_ntop(AF_INET, &c->ip4.addr, buf4, sizeof(buf4)));
-- 
cgit v1.2.3