From: Yu Watanabe Date: Mon, 1 Feb 2021 17:18:49 +0000 (+0900) Subject: libudev: set entry->list after the entry is stored in the list X-Git-Tag: v248-rc1~224^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=140716a51694ad2aa365869e3f8a741509a70959;p=thirdparty%2Fsystemd.git libudev: set entry->list after the entry is stored in the list 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. --- diff --git a/src/libudev/libudev-list.c b/src/libudev/libudev-list.c index 514927bc8fa..c224e9df6d3 100644 --- a/src/libudev/libudev-list.c +++ b/src/libudev/libudev-list.c @@ -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); }