Thursday, August 16, 2007

MaraDNS releases: 1.2.12.07 and 1.3.07.03

Today I have released not one, but two major releases of MaraDNS: 1.2.12.07, the latest bugfix update to the stable branch of MaraDNS, and 1.3.07.03, the latest bugfix, SQA, and documentation update to the beta-test branch of MaraDNS.

1.2.12.07 fixes a number of fairly important bugs which were fixed a while ago in 1.3:
  • Bugfix: If bind_star_handling was set to 2, MaraDNS would leak memory when the existance of another RR stopped resolution using a star record.
  • Bugfix: bind_star_handling, when set to 2, now appears to do the right thing.
  • Bugfix: Non-critical double-free() removed.
  • Bugfix: askmara no longer goes in to an infinite loop when it receives an invalid TXT record.
  • Bugfix: csv2 parser now makes sure that TXT chunks are no longer than 255 characters in all cases.

1.3.07.03 has two bugfixes, five SQA tests added, and some other updates. Not noted in the changelog is that I have moved the udpsuccess() function call in to its own file. The thinking is to make the main MaraDNS.c fils smaller, to make things more tidy and to make re-compiles faster.

My next plan for MaraDNS has not changed: Find the bug that is causing inappropriate rotation of resource records. This one appears to affect 1.0, 1.2, and 1.3, so I would like to find it. If I can't find it, I will completely rewrite the relevant RR rotation code.

I hope to find this bug before 1.0 becomes security-only updates on December 21st.

It would seem that some versions of BSD use a system called pkgsrc that basically assumes you use autoconf for building your program, something MaraDNS does not do. This makes it difficult for pkgsrc packagers to package MaraDNS. I won't fix this in 1.2, but it may be something worth changing for 1.3 if the changes do not disrupt things too much.