diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c index 0e74f9136ac..0c39e22ed78 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;