diff options
author | Thomas Haller <thaller@redhat.com> | 2017-02-23 00:15:06 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-02-23 00:15:08 +0100 |
commit | 7812bbe7bf955cbb154dfb804dc0a8f9727969f3 (patch) | |
tree | 1701ef5eaf0a52d6853334c0d5052da86ba30fa5 | |
parent | 616fd4be52b1611467a12cd003dedb0f6d899d51 (diff) | |
download | NetworkManager-7812bbe7bf955cbb154dfb804dc0a8f9727969f3.tar.gz |
fixup! device: split out cloned MAC decision from nm_device_hw_addr_set_cloned()bg/team-cloned-mac-rh1424641
Avoid cloning the string... we may already have a clone.
-rw-r--r-- | src/devices/nm-device.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 67cefc61b1..6d50e7269b 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -12799,7 +12799,7 @@ _hw_addr_get_cloned (NMDevice *self, NMConnection *connection, gboolean is_wifi, char **hwaddr_detail, GError **error) { NMDevicePrivate *priv; - gs_free char *hw_addr_tmp = NULL; + gs_free char *addr_setting_free = NULL; gs_free char *hw_addr_generated = NULL; gs_free char *generate_mac_address_mask_tmp = NULL; const char *addr, *addr_setting; @@ -12815,14 +12815,14 @@ _hw_addr_get_cloned (NMDevice *self, NMConnection *connection, gboolean is_wifi, if (!connection) g_return_val_if_reached (FALSE); - addr = addr_setting = _get_cloned_mac_address_setting (self, connection, is_wifi, &hw_addr_tmp); + addr = addr_setting = _get_cloned_mac_address_setting (self, connection, is_wifi, &addr_setting_free); if (nm_streq (addr, NM_CLONED_MAC_PRESERVE)) { /* "preserve" means to reset the initial MAC address. */ NM_SET_OUT (preserve, TRUE); NM_SET_OUT (hwaddr, NULL); NM_SET_OUT (hwaddr_type, HW_ADDR_TYPE_UNSET); - NM_SET_OUT (hwaddr_detail, g_strdup (addr_setting)); + NM_SET_OUT (hwaddr_detail, g_steal_pointer (&addr_setting_free) ?: g_strdup (addr_setting)); return TRUE; } @@ -12897,7 +12897,7 @@ _hw_addr_get_cloned (NMDevice *self, NMConnection *connection, gboolean is_wifi, NM_SET_OUT (preserve, FALSE); NM_SET_OUT (hwaddr, addr_out); NM_SET_OUT (hwaddr_type, type_out); - NM_SET_OUT (hwaddr_detail, g_strdup (addr_setting)); + NM_SET_OUT (hwaddr_detail, g_steal_pointer (&addr_setting_free) ?: g_strdup (addr_setting)); return TRUE; out_no_action: NM_SET_OUT (preserve, FALSE); |