From a16fad02c1b1fc9484b9c07b9ce98491aea05aa2 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Sat, 26 Oct 2013 22:20:54 +0300 Subject: [PATCH] Fix handling of empty lookup/list result --- modules/remotebackend/remotebackend.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/remotebackend/remotebackend.cc b/modules/remotebackend/remotebackend.cc index 1fcebd324..98d058210 100644 --- a/modules/remotebackend/remotebackend.cc +++ b/modules/remotebackend/remotebackend.cc @@ -192,8 +192,8 @@ void RemoteBackend::lookup(const QType &qtype, const std::string &qdomain, DNSPa return; } - // OK. we have result parameters in result - if ((*d_result)["result"].IsArray() == false) { + // OK. we have result parameters in result. do not process empty result. + if ((*d_result)["result"].IsArray() == false || (*d_result)["result"].Size() < 1) { delete d_result; return; } @@ -222,7 +222,7 @@ bool RemoteBackend::list(const std::string &target, int domain_id) { delete d_result; return false; } - if ((*d_result)["result"].IsArray() == false) { + if ((*d_result)["result"].IsArray() == false || (*d_result)["result"].Size() < 1) { delete d_result; return false; } @@ -233,6 +233,7 @@ bool RemoteBackend::list(const std::string &target, int domain_id) { bool RemoteBackend::get(DNSResourceRecord &rr) { if (d_index == -1) return false; + rapidjson::Value value; value = ""; -- 2.50.1