From 58d622d96dcb1a1d0b9a212782d329e60e24d1c3 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 8 Sep 2016 11:34:19 +1000 Subject: [PATCH] 4462. [bug] Don't describe a returned EDNS COOKIE as "good" when there isn't a valid server cookie. [RT #43167] --- CHANGES | 3 +++ lib/dns/message.c | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 0d3ff0dc35..56120a310d 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4462. [bug] Don't describe a returned EDNS COOKIE as "good" + when there isn't a valid server cookie. [RT #43167] + 4461. [bug] win32: not all external data was properly marked as external data for windows dll. [RT #43161] diff --git a/lib/dns/message.c b/lib/dns/message.c index a4f52ea2e3..96f1bcb723 100644 --- a/lib/dns/message.c +++ b/lib/dns/message.c @@ -3426,8 +3426,21 @@ dns_message_pseudosectiontotext(dns_message_t *msg, isc_buffer_forward(&optbuf, optlen); if (optcode == DNS_OPT_COOKIE) { - if (msg->cc_ok) + /* + * Valid server cookie? + */ + if (msg->cc_ok && optlen >= 16) ADD_STRING(target, " (good)"); + /* + * Server cookie is not valid but + * we had our cookie echoed back. + */ + if (msg->cc_ok && optlen < 16) + ADD_STRING(target, " (echoed)"); + /* + * We didn't get our cookie echoed + * back. + */ if (msg->cc_bad) ADD_STRING(target, " (bad)"); ADD_STRING(target, "\n");