Yes, sorry you are correct f'or modern POSIX & ISO C systems (linux, freebsd, solaris).  I sometimes forget this because I work with some very old Domain/OS 10.3.5 systems where the C library based on a mix of very ancient SysV/BSD4.3 where freeing a NULL ptr was not as clearly defined.  So I think I added the extra NULL check as a safety measure in the process of trying to troubleshoot the problem.  My apologies.  I should have checked my notes more carefully, and I would have seen this artifact did not affect my testing.

Looking at my notes, the patch you provided to remove the line to "free(conndata->index);" was sufficient to fix the problem I observed.

Sorry for the confusion, and thanks for pointing that out.

On Tue, Mar 31, 2015 at 7:45 AM, Mukund Sivaraman via RT <bind9-review@isc.org> wrote:
Hi Troy

On Tue, Mar 31, 2015 at 01:03:55PM +0000, Troy Noble via RT wrote:
> Sorry, I completely forgot to mention I also had to add a check for if
> (threaddata->index != NULL) before free(threaddata->index)

It is unnecessary to check for NULL before calling free(). free() does
this check.

                Mukund