]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
bindbackend: Move throw to correct place in startTransaction
authorAki Tuomi <cmouse@cmouse.fi>
Mon, 18 Sep 2017 09:56:02 +0000 (12:56 +0300)
committerAki Tuomi <cmouse@cmouse.fi>
Mon, 18 Sep 2017 09:56:02 +0000 (12:56 +0300)
The cleanup code wasn't being executed due to premature throw

modules/bindbackend/bindbackend2.cc

index 606ac23685609a00bb3cbf6661d06cea12f1941c..eeeb558c13e684ecb73e9e76806bd3f5026b0116 100644 (file)
@@ -205,10 +205,10 @@ bool Bind2Backend::startTransaction(const DNSName &qname, int id)
     d_transaction_tmpname=bbd.d_filename+"."+itoa(random());
     d_of=new ofstream(d_transaction_tmpname.c_str());
     if(!*d_of) {
-      throw DBException("Unable to open temporary zonefile '"+d_transaction_tmpname+"': "+stringerror());
       unlink(d_transaction_tmpname.c_str());
       delete d_of;
       d_of=0;
+      throw DBException("Unable to open temporary zonefile '"+d_transaction_tmpname+"': "+stringerror());
     }
     
     *d_of<<"; Written by PowerDNS, don't edit!"<<endl;