From f515df39b593ab2d666139116ade8180b850edf3 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 25 Mar 2013 15:17:35 -0500 Subject: [PATCH] core: don't crash checking unmanaged specs if device has no hardware address Not all devices have a hardware address, like WWAN or ADSL. So don't unconditionally expect one. --- src/nm-device.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/nm-device.c b/src/nm-device.c index fe0e55a0a8..c326b43497 100644 --- a/src/nm-device.c +++ b/src/nm-device.c @@ -5567,12 +5567,14 @@ spec_match_list (NMDevice *device, const GSList *specs) const guint8 *hwaddr; guint hwaddr_len = 0; char *hwaddr_str; - gboolean matched; + gboolean matched = FALSE; hwaddr = nm_device_get_hw_address (device, &hwaddr_len); - hwaddr_str = nm_utils_hwaddr_ntoa (hwaddr, nm_utils_hwaddr_type (hwaddr_len)); - matched = nm_match_spec_hwaddr (specs, hwaddr_str); - g_free (hwaddr_str); + if (hwaddr && hwaddr_len) { + hwaddr_str = nm_utils_hwaddr_ntoa (hwaddr, nm_utils_hwaddr_type (hwaddr_len)); + matched = nm_match_spec_hwaddr (specs, hwaddr_str); + g_free (hwaddr_str); + } if (!matched) matched = nm_match_spec_interface_name (specs, nm_device_get_iface (device));