about summary refs log tree commit diff
path: root/libnm-core/nm-utils.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2019-11-25 18:53:53 +0100
committerMichael Biebl <biebl@debian.org>2019-11-25 18:53:53 +0100
commite22609983008e1a669196ad64ba3a59ae8c76e0d (patch)
treec5b97693244d5004cbe735d507a25159512a753d /libnm-core/nm-utils.c
parent9c642eac191ef0dce49855d8da0a9e9af18d5113 (diff)
New upstream version 1.20.8 upstream/1.20.8
Diffstat (limited to 'libnm-core/nm-utils.c')
-rw-r--r--libnm-core/nm-utils.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
index 29b62e2f..8f2b4018 100644
--- a/libnm-core/nm-utils.c
+++ b/libnm-core/nm-utils.c
@@ -4291,14 +4291,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);
 
@@ -4309,9 +4310,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;