isc_buffer
Gisle Vanem
gvanem at yahoo.no
Mon Oct 31 12:45:05 UTC 2016
Mark Andrews wrote:
>> BTW. the number of ISC_x defines are staggering. It
>> seems some of them are no longer supported. Like with
>> 'ISC_CHECK_ALL', I'm getting assert-failures in some
>> win32 .c-files. Anybody who have tried that lately?
>
> Why do you say that? The first blocks could have #undef's added
> but that doesn't stop ISC_CHECK_ALL and ISC_CHECK_NONE overridding
> any individual checks settings and checks are on for any which
> aren't explicitly set.
Sorry for the late reply. But you're right. The fault with the trailing
garbage from isc_netaddr_totext() was elsewhere.
But it seems to me, there's some issues with all the mem-debugging
code in libisc. Since if I modify nslookup.c slightly:
--- a/nslookup.c 2016-09-19 15:41:42
+++ b/nslookup.c 2016-10-31 11:48:49
@@ -719,7 +719,7 @@
} else if (strncasecmp(opt, "d2", 2) == 0) {
debugging = ISC_TRUE;
} else if (strncasecmp(opt, "nod2", 4) == 0) {
- debugging = ISC_FALSE;
+ debugging = ISC_FALSE, isc_mem_debugging = 0xFF;
} else if (strncasecmp(opt, "search", 3) == 0) {
usesearch = ISC_TRUE;
} else if (strncasecmp(opt, "nosearch", 5) == 0) {
and do 'nslookup.exe -nod2 www.vg.no', I get this assert:
...
mem.c:1300: INSIST(oldsize == size) failed.
And the call-stack from WinDbg:
ucrtbase!abort+0x4b
libisc!isc___mem_put(struct isc_mem * ctx0 = 0x04106db0, void * ptr = 0x04117638,
unsigned int size = 0x84, char * file = 0x6a854184 "task.c", unsigned int line = 0x14c)+0x133
libisc!task_finished(struct isc__task * task = 0x04106db0)+0x114
libisc!dispatch(struct isc__taskmgr * manager = 0x04116638)+0x234
libisc!run(void * uap = 0x04116638)+0x9
ucrtbase!thread_start<unsigned int +0x3f
--
--gv
More information about the bind-workers
mailing list