isc_buffer

Gisle Vanem gvanem at yahoo.no
Mon Oct 31 17:55:02 UTC 2016


Mark Andrews wrote:

> isc_mem_debugging is designed to be set before any isc_mem_create*() calls are made.
> Changing it after that will lead to the results you have seen.
> That said we could record isc_mem_debugging when a context is created
> and use then there after which would avoid the INSIST when you change it
> too late.

Ok, that makes sense. I removed my patch to nslookup.c and all seems
okay for now.

But as I mentioned the trailing garbage was elsewhere; in isc_print_sprintf().
(I think because my platform.h had a 'ISC_PLATFORM_NEEDPRINTF' defined).

Speaking of 'isc_print_sprintf()', the 'ISC_QUAD_FORMAT' for Windows is defined
to "I64". But in print_test, I get this failure in 'print_test.exe snprintf':

  *** Check failed: print_test.c:116: n != 18
  *** Check failed: print_test.c:117: buf != "0xf5f5f5f5f5f5f5f5" (0xI64x != 0xf5f5f5f5f5f5f5f5)
  failed: 2 checks failed; see output for more details

With a '#define ISC_PLATFORM_QUADFORMAT "ll"' in lib\isc\win32\include\isc\platform.h,
the print_test gets a 'passed'. I assume since MSVC-2015 handle both "llx" and "I64x".

-- 
--gv


More information about the bind-workers mailing list