mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-25 16:30:07 +01:00
utils: make nm_utils_hwaddr_matches() accept NULL
This essentially aligns the implementation with the documentation. It is also rather useful, since it allows us to use the value returned by nm_setting_wired_get_mac_address() directly, and that one can indeed be NULL.
This commit is contained in:
parent
e1a068e93c
commit
62919bab43
2 changed files with 19 additions and 8 deletions
|
|
@ -4276,14 +4276,15 @@ nm_utils_hwaddr_matches (gconstpointer hwaddr1,
|
|||
gsize l;
|
||||
|
||||
if (hwaddr1_len == -1) {
|
||||
g_return_val_if_fail (hwaddr1 != NULL, FALSE);
|
||||
|
||||
if (!hwaddr_aton (hwaddr1, buf1, sizeof (buf1), &l)) {
|
||||
if (hwaddr1 == NULL) {
|
||||
hwaddr1_len = 0;
|
||||
} else if (hwaddr_aton (hwaddr1, buf1, sizeof (buf1), &l)) {
|
||||
hwaddr1 = buf1;
|
||||
hwaddr1_len = l;
|
||||
} else {
|
||||
g_return_val_if_fail ((hwaddr2_len == -1 && hwaddr2) || (hwaddr2_len > 0 && hwaddr2_len <= NM_UTILS_HWADDR_LEN_MAX), FALSE);
|
||||
return FALSE;
|
||||
}
|
||||
hwaddr1 = buf1;
|
||||
hwaddr1_len = l;
|
||||
} else {
|
||||
g_return_val_if_fail (hwaddr1_len > 0 && hwaddr1_len <= NM_UTILS_HWADDR_LEN_MAX, FALSE);
|
||||
|
||||
|
|
@ -4294,9 +4295,9 @@ nm_utils_hwaddr_matches (gconstpointer hwaddr1,
|
|||
}
|
||||
|
||||
if (hwaddr2_len == -1) {
|
||||
g_return_val_if_fail (hwaddr2 != NULL, FALSE);
|
||||
|
||||
if (!hwaddr_aton (hwaddr2, buf2, sizeof (buf2), &l))
|
||||
if (hwaddr2 == NULL)
|
||||
l = 0;
|
||||
else if (!hwaddr_aton (hwaddr2, buf2, sizeof (buf2), &l))
|
||||
return FALSE;
|
||||
if (l != hwaddr1_len)
|
||||
return FALSE;
|
||||
|
|
|
|||
|
|
@ -3950,6 +3950,16 @@ test_hwaddr_equal (void)
|
|||
g_assert (nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), null_string, -1));
|
||||
g_assert (nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), null_binary, sizeof (null_binary)));
|
||||
g_assert (nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), NULL, ETH_ALEN));
|
||||
|
||||
g_assert (nm_utils_hwaddr_matches (NULL, -1, NULL, -1));
|
||||
g_assert (!nm_utils_hwaddr_matches (NULL, -1, string, -1));
|
||||
g_assert (!nm_utils_hwaddr_matches (string, -1, NULL, -1));
|
||||
g_assert (!nm_utils_hwaddr_matches (NULL, -1, null_string, -1));
|
||||
g_assert (!nm_utils_hwaddr_matches (null_string, -1, NULL, -1));
|
||||
g_assert (!nm_utils_hwaddr_matches (NULL, -1, binary, sizeof (binary)));
|
||||
g_assert (!nm_utils_hwaddr_matches (binary, sizeof (binary), NULL, -1));
|
||||
g_assert (!nm_utils_hwaddr_matches (NULL, -1, null_binary, sizeof (null_binary)));
|
||||
g_assert (!nm_utils_hwaddr_matches (null_binary, sizeof (null_binary), NULL, -1));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue