summaryrefslogtreecommitdiff
path: root/src/libudev/libudev-list.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libudev/libudev-list.c')
-rw-r--r--src/libudev/libudev-list.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libudev/libudev-list.c b/src/libudev/libudev-list.c
index c224e9df6d..d42008e48d 100644
--- a/src/libudev/libudev-list.c
+++ b/src/libudev/libudev-list.c
@@ -39,9 +39,10 @@ static struct udev_list_entry *udev_list_entry_free(struct udev_list_entry *entr
return NULL;
if (entry->list) {
- if (entry->list->unique)
+ if (entry->list->unique && entry->name)
hashmap_remove(entry->list->unique_entries, entry->name);
- else
+
+ if (!entry->list->unique || entry->list->uptodate)
LIST_REMOVE(entries, entry->list->entries, entry);
}