From: Yu Watanabe Date: Tue, 13 Oct 2020 13:41:34 +0000 (+0900) Subject: sd-device: use trivial_hash_ops_free_free for managing match sysattrs or properties X-Git-Tag: v247-rc1~81^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F17267%2Fhead;p=thirdparty%2Fsystemd.git 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. --- 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;