From: cebka@lenovo-laptop Date: Mon, 15 Feb 2010 14:02:15 +0000 (+0300) Subject: * Fix unix socket creation under FreeBSD (reported by Andrey Zverev) X-Git-Tag: 0.3.0~87 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22b965e141130042802a6a92dfe2f8d34881344b;p=thirdparty%2Frspamd.git * Fix unix socket creation under FreeBSD (reported by Andrey Zverev) --- diff --git a/src/util.c b/src/util.c index b43da43226..c093ccc362 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);