[syslog-ng] [Bug 240] host() in filters fail to match if using use_dns(yes)

bugzilla at bugzilla.balabit.com bugzilla at bugzilla.balabit.com
Mon Jul 22 17:37:41 CEST 2013


--- Comment #1 from Balazs Scheidler <bazsi at balabit.hu>  2013-07-22 17:37:41 ---
I've just pushed a fix to the f/fix-fqdn-processing-for-numeric-hosts branch on github.com/balabit/syslog-ng-3.4.

commit f8507a653d2779d9f82c445e4a649d4ee025535b
Author: Balazs Scheidler <bazsi at balabit.hu>
Date:   Mon Jul 22 17:35:48 2013 +0200

    misc: fixed truncated IP addresses set in $HOST

    In case getnameinfo() fails to resolve an address, it automatically returns
    the numeric IP address without setting an error condition, which messes up
    the logic in resolve_sockaddr() and causes the IP address to be truncated if
    use_fqdn() is set to no.  This patch instructs getnameinfo() to return
    failure instead by passing NI_NAMEREQD in flags.

    References: bugzilla #240
    Signed-off-by: Balazs Scheidler <bazsi at balabit.hu>

diff --git a/lib/misc.c b/lib/misc.c
index 2c8e67d..9ff8d6b 100644
--- a/lib/misc.c
+++ b/lib/misc.c
@@ -218,7 +218,7 @@ resolve_sockaddr(gchar *result, gsize *result_len, GSockAddr *saddr, gboolean us
               if ((!use_dns_cache || !dns_cache_lookup(saddr->sa.sa_family, addr, (const gchar **) &hname, &positive)) && usedns != 2)
-                  if (getnameinfo(&saddr->sa, saddr->salen, buf, sizeof(buf), NULL, 0, 0) == 0)
+                  if (getnameinfo(&saddr->sa, saddr->salen, buf, sizeof(buf), NULL, 0, NI_NAMEREQD) == 0)
                     hname = buf;
                   struct hostent *hp;

This seems to resolve the issue for me.  Can you check if it really does?

@Algernon: can you please merge this to master? Thanks

Configure bugmail: https://bugzilla.balabit.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the syslog-ng mailing list