]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
* Fix unix socket creation under FreeBSD (reported by Andrey Zverev)
authorcebka@lenovo-laptop <cebka@lenovo-laptop>
Mon, 15 Feb 2010 14:02:15 +0000 (17:02 +0300)
committercebka@lenovo-laptop <cebka@lenovo-laptop>
Mon, 15 Feb 2010 14:02:15 +0000 (17:02 +0300)
src/util.c

index b43da43226d4d19abd10b39a1b0e71b7903c4235..c093ccc362a4bd629664c444ac4863ff50920655 100644 (file)
@@ -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);