]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-device: do not directly access entry in sd-device object
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 9 Jan 2023 05:07:16 +0000 (14:07 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 9 Jan 2023 06:00:56 +0000 (15:00 +0900)
No functional change, just refactoring.

src/libsystemd/sd-device/device-private.c

index 9553938931482df90450f7a86204024fea91e5f0..7a5d128cc1c504242af0822c1ae150faa0e46719 100644 (file)
@@ -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;