]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Check getTSIGKey response 1548/head
authorAki Tuomi <cmouse@desteem.org>
Wed, 16 Jul 2014 09:06:24 +0000 (12:06 +0300)
committerAki Tuomi <cmouse@desteem.org>
Wed, 16 Jul 2014 09:06:24 +0000 (12:06 +0300)
modules/remotebackend/remotebackend.cc

index af02140cbf47f6d3291a08931db3bafa73b4c8bc..508bf775b439c5f7489a72cec0c2f5463997dd9c 100644 (file)
@@ -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"]));