]> source.dussan.org Git - rspamd.git/commitdiff
Fix broken '_SC_GETPW_R_SIZE_MAX' on FreeBSD
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 14 Oct 2015 21:00:47 +0000 (22:00 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 14 Oct 2015 21:01:08 +0000 (22:01 +0100)
src/libutil/addr.c

index 5958e9e3e0e27d5a0788eb7ed262671edfff5e64..7d0d5fef9a6f8215880d259aed78e5f726f3ad79 100644 (file)
@@ -279,7 +279,7 @@ static gboolean
 rspamd_parse_unix_path (rspamd_inet_addr_t **target, const char *src)
 {
        gchar **tokens, **cur_tok, *p, *pwbuf;
-       gint pwlen;
+       glong pwlen;
        struct passwd pw, *ppw;
        struct group gr, *pgr;
        rspamd_inet_addr_t *addr;
@@ -299,8 +299,15 @@ rspamd_parse_unix_path (rspamd_inet_addr_t **target, const char *src)
        addr->u.un->group = (gid_t)-1;
 
        cur_tok = &tokens[1];
+#ifdef _SC_GETPW_R_SIZE_MAX
        pwlen = sysconf (_SC_GETPW_R_SIZE_MAX);
-       g_assert (pwlen > 0);
+       if (pwlen <= 0) {
+               pwlen = 8192;
+       }
+#else
+       pwlen = 8192;
+#endif
+
        pwbuf = g_alloca (pwlen);
 
        while (*cur_tok) {