From 88e22b6832472540602bb63ad25e04d6d115bcc9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 11 Mar 2021 08:26:51 +0100 Subject: [PATCH] libnm: sort attributes in nm_lldp_neighbor_get_attr_names() A hash table gives values in undefined order. Sort them, to get a stable order. --- src/libnm-client-impl/nm-device.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/libnm-client-impl/nm-device.c b/src/libnm-client-impl/nm-device.c index 8d3c2bb607..a540ff4be8 100644 --- a/src/libnm-client-impl/nm-device.c +++ b/src/libnm-client-impl/nm-device.c @@ -2963,21 +2963,13 @@ nm_lldp_neighbor_unref(NMLldpNeighbor *neighbor) char ** nm_lldp_neighbor_get_attr_names(NMLldpNeighbor *neighbor) { - GHashTableIter iter; - const char * key; - GPtrArray * names; + const char **keys; g_return_val_if_fail(NM_IS_LLDP_NEIGHBOR(neighbor), NULL); - names = g_ptr_array_new(); + keys = nm_utils_strdict_get_keys(neighbor->attrs, TRUE, NULL); - g_hash_table_iter_init(&iter, neighbor->attrs); - while (g_hash_table_iter_next(&iter, (gpointer *) &key, NULL)) - g_ptr_array_add(names, g_strdup(key)); - - g_ptr_array_add(names, NULL); - - return (char **) g_ptr_array_free(names, FALSE); + return nm_utils_strv_make_deep_copied_nonnull(keys); } /**