From 22b965e141130042802a6a92dfe2f8d34881344b Mon Sep 17 00:00:00 2001 From: "cebka@lenovo-laptop" Date: Mon, 15 Feb 2010 17:02:15 +0300 Subject: [PATCH] * Fix unix socket creation under FreeBSD (reported by Andrey Zverev) --- src/util.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/util.c b/src/util.c index b43da4322..c093ccc36 100644 --- a/src/util.c +++ b/src/util.c @@ -215,19 +215,17 @@ accept_from_socket (int listen_sock, struct sockaddr *addr, socklen_t * len) int make_unix_socket (const char *path, struct sockaddr_un *addr, gboolean is_server) { - size_t len = strlen (path); int fd, s_error, r, optlen, serrno, on = 1; - if (len > sizeof (addr->sun_path) - 1 || path == NULL) + if (path == NULL) return -1; -#ifdef FREEBSD - addr->sun_len = sizeof (struct sockaddr_un); -#endif - addr->sun_family = AF_UNIX; - strncpy (addr->sun_path, path, len); + g_strlcpy (addr->sun_path, path, sizeof (addr->sun_path)); +#ifdef FREEBSD + addr->sun_len = SUN_LEN (addr); +#endif fd = socket (PF_LOCAL, SOCK_STREAM, 0); -- 2.39.5