From a9560cf19bca633a891131a8393e190d5c34b7af Mon Sep 17 00:00:00 2001 From: Bert Hubert Date: Wed, 17 Sep 2008 17:04:36 +0000 Subject: [PATCH] do not crash on EDNS0 queries containing data (was never in any released version). Thanks to Matti Hiljanen and Stefan Schmidt git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1264 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- pdns/dnsrecords.cc | 5 ++--- pdns/pdns_recursor.cc | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pdns/dnsrecords.cc b/pdns/dnsrecords.cc index 373eddbca..0588c0af2 100644 --- a/pdns/dnsrecords.cc +++ b/pdns/dnsrecords.cc @@ -210,7 +210,6 @@ void OPTRecordContent::getData(vector >& options) string field(d_data.c_str() + pos, len); pos+=len; - options.push_back(make_pair(code, field)); } } @@ -357,10 +356,10 @@ bool getEDNSOpts(const MOADNSParser& mdp, EDNSOpts* eo) eo->d_extRCode=stuff.extRCode; eo->d_version=stuff.version; eo->d_Z=stuff.Z; - OPTRecordContent* orc = dynamic_cast(mdp.d_answers.back().first.d_content.get()); - + if(!orc) + return false; orc->getData(eo->d_options); return true; diff --git a/pdns/pdns_recursor.cc b/pdns/pdns_recursor.cc index 7bdd242c9..f50f59e0a 100644 --- a/pdns/pdns_recursor.cc +++ b/pdns/pdns_recursor.cc @@ -1504,6 +1504,7 @@ void parseAuthAndForwards() SyncRes::s_domainmap.clear(); // this makes us idempotent TXTRecordContent::report(); + OPTRecordContent::report(); typedef vector parts_t; parts_t parts; -- 2.49.0