diff options
Diffstat (limited to 'debian/patches/sd-device-also-store-properties-read-from-udev-database-t.patch')
-rw-r--r-- | debian/patches/sd-device-also-store-properties-read-from-udev-database-t.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/debian/patches/sd-device-also-store-properties-read-from-udev-database-t.patch b/debian/patches/sd-device-also-store-properties-read-from-udev-database-t.patch new file mode 100644 index 0000000..1684698 --- /dev/null +++ b/debian/patches/sd-device-also-store-properties-read-from-udev-database-t.patch @@ -0,0 +1,51 @@ +From: Yu Watanabe <watanabe.yu+github@gmail.com> +Date: Sat, 16 Feb 2019 05:21:59 +0900 +Subject: sd-device: also store properties read from udev database to + sd_device::properties_db + +Follow-up for a3ce813697bcc1c4644e097a2f1cd0459326d6ee and +5ce41697bd3ddc19cd6e1e6834751082ca0c8b02. + +Before a3ce813697bcc1c4644e097a2f1cd0459326d6ee, all properties in +src->properties and src->properties_db are mixed and copied to +dst->properties_db by device_copy_properties(). +So, it is not necessary to store data from udev database file to +sd_device::properties_db before copying properties. + +But now, properties are not mixed. So, the read data need to be +stored to also ::properties_db. + +Fixes #11721. + +(cherry picked from commit 03dd7b7ddec1b0e06f254972a2e05f516a05edaf) +--- + src/libsystemd/sd-device/sd-device.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c +index 2a69f2e..9137a93 100644 +--- a/src/libsystemd/sd-device/sd-device.c ++++ b/src/libsystemd/sd-device/sd-device.c +@@ -1110,6 +1110,7 @@ int device_add_devlink(sd_device *device, const char *devlink) { + static int device_add_property_internal_from_string(sd_device *device, const char *str) { + _cleanup_free_ char *key = NULL; + char *value; ++ int r; + + assert(device); + assert(str); +@@ -1127,7 +1128,13 @@ static int device_add_property_internal_from_string(sd_device *device, const cha + if (isempty(++value)) + value = NULL; + +- return device_add_property_internal(device, key, value); ++ /* Add the property to both sd_device::properties and sd_device::properties_db, ++ * as this is called by only handle_db_line(). */ ++ r = device_add_property_aux(device, key, value, false); ++ if (r < 0) ++ return r; ++ ++ return device_add_property_aux(device, key, value, true); + } + + int device_set_usec_initialized(sd_device *device, usec_t when) { |