Fix converting prefix to netmask 62/319662/1
authorJaehyun Kim <jeik01.kim@samsung.com>
Fri, 14 Feb 2025 08:53:59 +0000 (17:53 +0900)
committerJaehyun Kim <jeik01.kim@samsung.com>
Fri, 14 Feb 2025 08:53:59 +0000 (17:53 +0900)
When converting a prefix to a netmask,
the existing logic could only handle inputs that were multiples of 8,
so it was modified to handle all inputs.

Change-Id: Ibdfba514dd65fd093283b1c8c09d4200dab2f59c
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
src/wifi_ap.c

index 2b59ab9423280eb821666fa214590b46ef5faa80..f787d6c609a8a6fb40c349b8b04b6a526526e7ec 100644 (file)
@@ -164,7 +164,7 @@ int __ap_convert_netmask_to_prefix_len(const char *netmask)
 
 static in_addr_t __ap_convert_prefix_len_to_netmask(int prefix_len)
 {
-       return (prefix_len ? (in_addr_t) 0xFFFFFFFFu >> (32 - prefix_len) : 0);
+       return (prefix_len & ~31) ? 0xFFFFFFFFu : htonl(0xFFFFFFFFu << (32 - prefix_len));
 }
 
 static wifi_manager_rssi_level_e __ap_convert_dbm_to_level_24(int rssi_dbm)