diff options
Diffstat (limited to 'src/libsystemd/sd-bus/test-bus-watch-bind.c')
-rw-r--r-- | src/libsystemd/sd-bus/test-bus-watch-bind.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/libsystemd/sd-bus/test-bus-watch-bind.c b/src/libsystemd/sd-bus/test-bus-watch-bind.c index 42a9ce5301..4b3da30079 100644 --- a/src/libsystemd/sd-bus/test-bus-watch-bind.c +++ b/src/libsystemd/sd-bus/test-bus-watch-bind.c @@ -1,6 +1,4 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ -/*** -***/ #include <pthread.h> @@ -10,7 +8,6 @@ #include "alloc-util.h" #include "fd-util.h" -#include "fileio.h" #include "fs-util.h" #include "mkdir.h" #include "path-util.h" @@ -18,6 +15,7 @@ #include "rm-rf.h" #include "socket-util.h" #include "string-util.h" +#include "tmpfile-util.h" static int method_foobar(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { log_info("Got Foobar() call."); @@ -42,10 +40,9 @@ static const sd_bus_vtable vtable[] = { static void* thread_server(void *p) { _cleanup_free_ char *suffixed = NULL, *suffixed2 = NULL, *d = NULL; _cleanup_close_ int fd = -1; - union sockaddr_union u = { - .un.sun_family = AF_UNIX, - }; + union sockaddr_union u = {}; const char *path = p; + int salen; log_debug("Initializing server"); @@ -68,12 +65,13 @@ static void* thread_server(void *p) { assert_se(symlink(basename(suffixed), suffixed2) >= 0); (void) usleep(100 * USEC_PER_MSEC); - strncpy(u.un.sun_path, path, sizeof(u.un.sun_path)); + salen = sockaddr_un_set_path(&u.un, path); + assert_se(salen >= 0); fd = socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0); assert_se(fd >= 0); - assert_se(bind(fd, &u.sa, SOCKADDR_UN_LEN(u.un)) >= 0); + assert_se(bind(fd, &u.sa, salen) >= 0); usleep(100 * USEC_PER_MSEC); assert_se(listen(fd, SOMAXCONN) >= 0); |