From: Yu Watanabe Date: Mon, 9 Jan 2023 05:00:09 +0000 (+0900) Subject: sd-device: make device_set_syspath() clear sysname and sysnum X-Git-Tag: v253-rc1~148^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9a26098e90116fdb5fcffa03485b375ee0c82b6a;p=thirdparty%2Fsystemd.git sd-device: make device_set_syspath() clear sysname and sysnum Otherwise, when a new syspath is assigned to the sd-device object, sd_device_get_sysname() or _sysnum() will provide an outdated device name or number. --- diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c index 7cda48c4caf..95539389314 100644 --- a/src/libsystemd/sd-device/device-private.c +++ b/src/libsystemd/sd-device/device-private.c @@ -645,10 +645,6 @@ int device_rename(sd_device *device, const char *name) { if (r < 0) return r; - /* Here, only clear the sysname and sysnum. They will be set when requested. */ - device->sysnum = NULL; - device->sysname = mfree(device->sysname); - r = sd_device_get_property_value(device, "INTERFACE", &interface); if (r == -ENOENT) return 0; diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index 2fcdce7bac9..f8a320dddaa 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -249,6 +249,10 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) { free_and_replace(device->syspath, syspath); device->devpath = devpath; + + /* Unset sysname and sysnum, they will be assigned when requested. */ + device->sysnum = NULL; + device->sysname = mfree(device->sysname); return 0; }