fix to REQUIRE failure in resolver.c

JINMEI Tatuya / 神明達哉 Jinmei_Tatuya at isc.org
Tue Aug 5 19:31:56 UTC 2008


For those who've seen a crash of recent beta versions on entry of
resolver.c:resquery_response() like this:

17-Jul-2008 13:20:48.425 general: resolver.c:5494: REQUIRE((((query) !=
((void *)0)) && (((const isc__magic_t *)(query))->magic == ((('Q') << 24
| ('!') << 16 | ('!') << 8 | ('!')))))) failed

please try the patch copied below if possible.  We believe this will
perfectly solve this issue, but confirming it from users who've
actually seen this would also be helpful.  The fix will appear in the
next beta.

Thanks,

---
JINMEI, Tatuya

Index: dispatch.c
===================================================================
RCS file: /proj/cvs/prod/bind9/lib/dns/dispatch.c,v
retrieving revision 1.149
diff -u -r1.149 dispatch.c
--- dispatch.c	23 Jul 2008 23:27:54 -0000	1.149
+++ dispatch.c	5 Aug 2008 03:15:03 -0000
@@ -3085,7 +3085,7 @@
 	 */
 	LOCK(&qid->lock);
 	for (resp = linear_first(qid);
-	     resp != NULL && !resp->item_out;
+	     resp != NULL && resp->item_out;
 	     /* Empty. */)
 		resp = linear_next(qid, resp);
 


More information about the bind-users mailing list