From d7ea7c486a0101dae06a9aca290bfafa46bc1fe2 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 7 Mar 2021 15:24:15 +0900 Subject: [PATCH] sd-device: minor optimization for sd_device_new_from_device_id() (cherry picked from commit ff7a8d2938b24cb7ca7b69900395ecf837a43a23) Conflict:input parameters of parse_ifindex() is different, and it does not affect the function of this patch, so ignore parse_ifindex() modifications Reference:https://github.com/systemd/systemd-stable/commit/d7ea7c486a0101dae06a9aca290bfafa46bc1fe2 --- src/libsystemd/sd-device/sd-device.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index bb4d453cee..da5fd2b734 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -653,15 +653,14 @@ _public_ int sd_device_new_from_device_id(sd_device **ret, const char *id) { } case '+': { - char subsys[PATH_MAX]; - char *sysname; + char subsys[NAME_MAX+1]; /* NAME_MAX does not include the trailing NUL. */ + const char *sysname; - (void) strscpy(subsys, sizeof(subsys), id + 1); - sysname = strchr(subsys, ':'); + sysname = strchr(id + 1, ':'); if (!sysname) return -EINVAL; - sysname[0] = '\0'; + (void) strnscpy(subsys, sizeof(subsys), id + 1, sysname - id - 1); sysname++; return sd_device_new_from_subsystem_sysname(ret, subsys, sysname); -- 2.27.0