mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-01 20:00:12 +01:00
wifi: avoid large shift for calculating netmask in ip4_config_to_iwd_config()
Found by Coverity:
Error: BAD_SHIFT (CWE-682): [#def53]
NetworkManager-1.31.3/src/core/devices/wifi/nm-wifi-utils.c:1590: zero_return: Function call "nm_ip_address_get_prefix(addr)" returns 0.
NetworkManager-1.31.3/src/core/devices/wifi/nm-wifi-utils.c:1590: assignment: Assigning: "prefix" = "nm_ip_address_get_prefix(addr)". The value of "prefix" is now 0.
NetworkManager-1.31.3/src/core/devices/wifi/nm-wifi-utils.c:1591: large_shift: In expression "0xffffffffU << 32U - prefix", left shifting by more than 31 bits has undefined behavior. The shift amount, "32U - prefix", is 32.
# 1589| NMIPAddress *addr = nm_setting_ip_config_get_address(s_ip, 0);
# 1590| guint prefix = nm_ip_address_get_prefix(addr);
# 1591|-> in_addr_t netmask = htonl(0xffffffffu << (32 - prefix));
# 1592| char buf[INET_ADDRSTRLEN];
# 1593|
Fixes: 9d22ae7981 ('wifi: Add utilities for writing IWD connection profiles')
This commit is contained in:
parent
820ab364fd
commit
936b60e00f
1 changed files with 1 additions and 1 deletions
|
|
@ -1591,7 +1591,7 @@ ip4_config_to_iwd_config(GKeyFile *file, NMSettingIPConfig *s_ip, GError **error
|
|||
if (num) {
|
||||
NMIPAddress *addr = nm_setting_ip_config_get_address(s_ip, 0);
|
||||
guint prefix = nm_ip_address_get_prefix(addr);
|
||||
in_addr_t netmask = htonl(0xffffffffu << (32 - prefix));
|
||||
in_addr_t netmask = _nm_utils_ip4_prefix_to_netmask(prefix);
|
||||
char buf[INET_ADDRSTRLEN];
|
||||
|
||||
nm_ip_address_get_address_binary(addr, &ip);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue