[rbldnsd] Announce: rbldnsd-0.96, including critical bugfix over 0.95

Michael Tokarev rbldnsd@corpit.ru
Thu, 29 May 2003 13:10:50 +0400


Rbldnsd-0.96 is out, that introduces some new features (below)
and contains an important bugfix for a bug that was added in
previous release, 0.95.  All users who're running 0.95 should
either upgrade or apply the following fix as soon as possible:

diff -u -r1.6 mempool.c
--- mempool.c   27 May 2003 16:57:07 -0000      1.6
+++ mempool.c   29 May 2003 08:43:28 -0000
@@ -70,7 +70,7 @@
      if (best != NULL) { /* found a free chunk */
        char *b;
        if (align && (best->size & alignmask))
-        best->size += alignto - (best->size & alignmask);
+        best->size &= ~alignmask;
        b = best->buf + MEMPOOL_CHUNKSIZE - best->size;
        best->size -= size;
        if (best->size < avg) {

The bug results in memory areas being allocated to overlap
with each other, which may lead to unexpected results including
random crashes.  Please note that versions prior to 0.95 will
NOT work on non-i386 architecture in most cases, due to misaligned
allocations.

Other features of 0.96 release:

  - pre-compress SOA and NS records for faster access

  - return NS records in AUTHORITY section of positive answers if
    available and there's a room for them.

  - restore broken MX record functionality.  Note that MX domain names
    aren't compressed anymore

  - do not lowercase domain names specified in NS, SOA and MX records

Filling up AUTHORITY section will help to speed up propagation of new
nameserver information to the caches.

Additionally, rbldnsd now logs a warning if SOA or NS records are too
large to fit in UDP packet.  In this case, neither SOA nor NS will be
placed to reply packet, and rbldnsd will refuse to answer to NS and
SOA (and ANY) queries to base zone.

Rbldnsd may be downloaded from
   http://www.corpit.ru/mjt/rbldnsd.html

/mjt