From a0887abbd8bd9f1a9a975af08e6b4a43960bb3e2 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 13 Oct 2020 22:41:34 +0900 Subject: [PATCH] sd-device: use trivial_hash_ops_free_free for managing match sysattrs or properties This fixes an issue caused by eb1c1dc029c91750e6255c3fd844b4f4bf238fab. Before the commit, multiple values can be specified for the same sysattr or property. Fixes #17259. --- src/libsystemd/sd-device/device-enumerator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index f3bac17ca3a..2d1ce798887 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -118,7 +118,7 @@ _public_ int sd_device_enumerator_add_match_sysattr(sd_device_enumerator *enumer else hashmap = &enumerator->nomatch_sysattr; - r = hashmap_put_strdup(hashmap, sysattr, value); + r = hashmap_put_strdup_full(hashmap, &trivial_hash_ops_free_free, sysattr, value); if (r <= 0) return r; @@ -133,7 +133,7 @@ _public_ int sd_device_enumerator_add_match_property(sd_device_enumerator *enume assert_return(enumerator, -EINVAL); assert_return(property, -EINVAL); - r = hashmap_put_strdup(&enumerator->match_property, property, value); + r = hashmap_put_strdup_full(&enumerator->match_property, &trivial_hash_ops_free_free, property, value); if (r <= 0) return r; -- 2.47.3