From 40d2dc0783c65d0ff0b79a457bd845e85e099111 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Wed, 16 Jul 2014 12:06:24 +0300 Subject: [PATCH] Check getTSIGKey response --- modules/remotebackend/remotebackend.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/remotebackend/remotebackend.cc b/modules/remotebackend/remotebackend.cc index af02140cb..508bf775b 100644 --- a/modules/remotebackend/remotebackend.cc +++ b/modules/remotebackend/remotebackend.cc @@ -514,6 +514,11 @@ bool RemoteBackend::getTSIGKey(const std::string& name, std::string* algorithm, if (this->send(query) == false || this->recv(answer) == false) return false; + if (!answer["result"].IsObject() || + !answer["result"].HasMember("algorithm") || + !answer["result"].HasMember("content")) + throw PDNSException("Invalid response to getTSIGKey, missing field(s)"); + algorithm->assign(getString(answer["result"]["algorithm"])); content->assign(getString(answer["result"]["content"])); -- 2.40.0