]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-device: use path_extract_filename() at one more place
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 15 Apr 2022 04:29:53 +0000 (13:29 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 15 Apr 2022 15:52:16 +0000 (00:52 +0900)
src/libsystemd/sd-device/sd-device.c

index cdae85675a97304b62602b8a301b13285388111e..ef3586ddfb5dd665dc2c803c8cea4d75e76bcb32 100644 (file)
@@ -1171,24 +1171,13 @@ _public_ int sd_device_get_devname(sd_device *device, const char **devname) {
 static int device_set_sysname_and_sysnum(sd_device *device) {
         _cleanup_free_ char *sysname = NULL;
         const char *sysnum = NULL;
-        const char *pos;
         size_t len = 0;
 
-        if (!device->devpath)
-                return -EINVAL;
-
-        pos = strrchr(device->devpath, '/');
-        if (!pos)
-                return -EINVAL;
-        pos++;
-
-        /* devpath is not a root directory */
-        if (*pos == '\0' || pos <= device->devpath)
-                return -EINVAL;
+        assert(device);
 
-        sysname = strdup(pos);
-        if (!sysname)
-                return -ENOMEM;
+        r = path_extract_filename(device->devpath, &sysname);
+        if (r < 0)
+                return r;
 
         /* some devices have '!' in their name, change that to '/' */
         while (sysname[len] != '\0') {