]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
bindbackend: Return false if domain_id is negative
authorAki Tuomi <cmouse@cmouse.fi>
Mon, 18 Sep 2017 06:43:57 +0000 (09:43 +0300)
committerAki Tuomi <cmouse@cmouse.fi>
Mon, 18 Sep 2017 09:55:47 +0000 (12:55 +0300)
It should return false, because it has effectively failed.
Returning true can cause several problems later on as
various functions assume they have valid file handle pointer
and valid domain ID to look up, which they don't.

modules/bindbackend/bindbackend2.cc

index e192ffd90f6e813b46a86eb079de4dfb5c0c2018..606ac23685609a00bb3cbf6661d06cea12f1941c 100644 (file)
@@ -193,7 +193,7 @@ bool Bind2Backend::startTransaction(const DNSName &qname, int id)
   if(id < 0) {
     d_transaction_tmpname.clear();
     d_transaction_id=id;
-    return true;
+    return false;
   }
   if(id == 0) {
     throw DBException("domain_id 0 is invalid for this backend.");
@@ -209,7 +209,6 @@ bool Bind2Backend::startTransaction(const DNSName &qname, int id)
       unlink(d_transaction_tmpname.c_str());
       delete d_of;
       d_of=0;
-      return false;
     }
     
     *d_of<<"; Written by PowerDNS, don't edit!"<<endl;
@@ -223,7 +222,7 @@ bool Bind2Backend::startTransaction(const DNSName &qname, int id)
 bool Bind2Backend::commitTransaction()
 {
   if(d_transaction_id < 0)
-    return true;
+    return false;
   delete d_of;
   d_of=0;