I just looked at this "tiny" memory handling code and discovered cleanup_tiny_memory() (and the call to it in john.c).

I now see why that "MEM_FREE(tbuf)" is problematic.