From adb62f0a5fbb9099969c520fec2bb0118aade30b Mon Sep 17 00:00:00 2001 From: Kees Monshouwer Date: Tue, 3 Nov 2020 00:54:43 +0100 Subject: [PATCH] auth: lmdb fix repaceRRset() --- modules/lmdbbackend/lmdbbackend.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/lmdbbackend/lmdbbackend.cc b/modules/lmdbbackend/lmdbbackend.cc index 3ac4d2e2ae..429289231b 100644 --- a/modules/lmdbbackend/lmdbbackend.cc +++ b/modules/lmdbbackend/lmdbbackend.cc @@ -485,18 +485,18 @@ bool LMDBBackend::replaceRRSet(uint32_t domain_id, const DNSName& qname, const Q MDBOutVal key, val; string match =co(domain_id, qname.makeRelative(di.zone), qt.getCode()); if(!cursor.find(match, key, val)) { - do { - cursor.del(); - } while(!cursor.next(key, val) && key.get().rfind(match, 0) == 0); + cursor.del(); } - vector adjustedRRSet; - for(auto rr : rrset) { - rr.content = serializeContent(rr.qtype.getCode(), rr.qname, rr.content); - rr.qname.makeUsRelative(di.zone); - adjustedRRSet.push_back(rr); + if(!rrset.empty()) { + vector adjustedRRSet; + for(auto rr : rrset) { + rr.content = serializeContent(rr.qtype.getCode(), rr.qname, rr.content); + rr.qname.makeUsRelative(di.zone); + adjustedRRSet.push_back(rr); + } + txn->txn->put(txn->db->dbi, match, serToString(adjustedRRSet)); } - txn->txn->put(txn->db->dbi, match, serToString(adjustedRRSet)); if(needCommit) txn->txn->commit(); -- 2.47.2