diff options
-rw-r--r-- | src/libsystemd/sd-bus/bus-kernel.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c index 0e74f9136a..0c39e22ed7 100644 --- a/src/libsystemd/sd-bus/bus-kernel.c +++ b/src/libsystemd/sd-bus/bus-kernel.c @@ -1447,11 +1447,15 @@ int bus_kernel_create_endpoint(const char *bus_name, const char *ep_name, char * } if (ep_path) { - int r = asprintf(ep_path, "%s/%s", dirname(path), ep_name); - if (r == -1 || !*ep_path) { + char *p; + + p = strjoin(dirname(path), "/", ep_name, NULL); + if (!p) { safe_close(fd); return -ENOMEM; } + + *ep_path = p; } return fd; |