From 571a5d54100d42dc2ca46538f1bcc1b0e3861f64 Mon Sep 17 00:00:00 2001 From: tetyys Date: Thu, 2 Oct 2025 20:09:33 +0300 Subject: [PATCH] Check for DNS result type before access (#378) * Check for DNS result type before access * Remove try...catch --- src/util.cpp | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index af4681d..7f1b2ba 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -577,29 +577,28 @@ bool get_dns_txt_records_base(const std::string& host, const CallbackpNext) { + if (p->wType != DNS_TYPE_TEXT) { + continue; } - for (PDNS_RECORD p = pQueryResults; p; p = p->pNext) { - for (size_t j = 0; j < p->Data.TXT.dwStringCount; ++j) { - const char* s = p->Data.TXT.pStringArray[j]; - if (s) { - const size_t n = strlen(s); - if (n > 0) { - callback(s, n); - } + for (size_t j = 0; j < p->Data.TXT.dwStringCount; ++j) { + const char* s = p->Data.TXT.pStringArray[j]; + if (s) { + const size_t n = strlen(s); + if (n > 0) { + callback(s, n); } } } + } - DnsRecordListFree(pQueryResults, DnsFreeRecordList); - } - catch (...) { - return false; - } + DnsRecordListFree(pQueryResults, DnsFreeRecordList); return true; #elif defined(HAVE_RES_QUERY)