]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
libudev: set entry->list after the entry is stored in the list
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 1 Feb 2021 17:18:49 +0000 (02:18 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 1 Feb 2021 17:22:59 +0000 (02:22 +0900)
This should not change anything. As hashmap_remove() is called before
hashmap_ensure_put(). So, even if hashmap_ensure_put() fails, a wrong
entry will not removed from the hashmap by udev_list_entry_free().
But anyway, just for safety.

src/libudev/libudev-list.c

index 514927bc8fa53262f4c02287f10de445bdd94963..c224e9df6d3232860c714e922ba4a79320bdd116 100644 (file)
@@ -88,7 +88,6 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char *
                 return NULL;
 
         *entry = (struct udev_list_entry) {
-                .list = list,
                 .name = TAKE_PTR(name),
                 .value = TAKE_PTR(value),
         };
@@ -103,6 +102,8 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char *
         } else
                 LIST_APPEND(entries, list->entries, entry);
 
+        entry->list = list;
+
         return TAKE_PTR(entry);
 }