summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-01-09 06:07:16 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2023-01-09 07:00:56 +0100
commit1de6a49721957a85a4934ddbdf88d535774597b1 (patch)
treef9eea87bac61a1c0dc8e235d259d7d947c3cbbd6 /src
parentsd-device: make device_set_syspath() clear sysname and sysnum (diff)
downloadsystemd-1de6a49721957a85a4934ddbdf88d535774597b1.tar.xz
systemd-1de6a49721957a85a4934ddbdf88d535774597b1.zip
sd-device: do not directly access entry in sd-device object
No functional change, just refactoring.
Diffstat (limited to 'src')
-rw-r--r--src/libsystemd/sd-device/device-private.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c
index 9553938931..7a5d128cc1 100644
--- a/src/libsystemd/sd-device/device-private.c
+++ b/src/libsystemd/sd-device/device-private.c
@@ -620,7 +620,7 @@ int device_get_devlink_priority(sd_device *device, int *ret) {
int device_rename(sd_device *device, const char *name) {
_cleanup_free_ char *new_syspath = NULL;
- const char *interface;
+ const char *s;
int r;
assert(device);
@@ -629,7 +629,11 @@ int device_rename(sd_device *device, const char *name) {
if (!filename_is_valid(name))
return -EINVAL;
- r = path_extract_directory(device->syspath, &new_syspath);
+ r = sd_device_get_syspath(device, &s);
+ if (r < 0)
+ return r;
+
+ r = path_extract_directory(s, &new_syspath);
if (r < 0)
return r;
@@ -641,18 +645,18 @@ int device_rename(sd_device *device, const char *name) {
/* At the time this is called, the renamed device may not exist yet. Hence, we cannot validate
* the new syspath. */
- r = device_set_syspath(device, new_syspath, false);
+ r = device_set_syspath(device, new_syspath, /* verify = */ false);
if (r < 0)
return r;
- r = sd_device_get_property_value(device, "INTERFACE", &interface);
+ r = sd_device_get_property_value(device, "INTERFACE", &s);
if (r == -ENOENT)
return 0;
if (r < 0)
return r;
/* like DEVPATH_OLD, INTERFACE_OLD is not saved to the db, but only stays around for the current event */
- r = device_add_property_internal(device, "INTERFACE_OLD", interface);
+ r = device_add_property_internal(device, "INTERFACE_OLD", s);
if (r < 0)
return r;