]> granicus.if.org Git - pdns/commitdiff
deal with NULL values being passed on as empty strings from gsql backends
authorKees Monshouwer <mind04@monshouwer.org>
Sun, 23 Oct 2016 18:05:14 +0000 (20:05 +0200)
committermind04 <mind04@monshouwer.org>
Sun, 23 Oct 2016 21:47:54 +0000 (23:47 +0200)
pdns/backends/gsql/gsqlbackend.cc

index 8a2b716c7e5c70bd983b0651d885a35ea8d4b5cc..5a9f0087e2ab37f22638b53ac57796020153790d 100644 (file)
@@ -552,7 +552,6 @@ bool GSQLBackend::getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qna
 {
   if(!d_dnssecQueries)
     return false;
-  // cerr<<"gsql before/after called for id="<<id<<", qname='"<<qname<<"'"<<endl;
   after.clear();
 
   SSqlStatement::row_t row;
@@ -564,7 +563,9 @@ bool GSQLBackend::getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qna
     while(d_afterOrderQuery_stmt->hasNextRow()) {
       d_afterOrderQuery_stmt->nextRow(row);
       ASSERT_ROW_COLUMNS("get-order-after-query", row, 1);
-      after=DNSName(boost::replace_all_copy(row[0]," ",".")).labelReverse();
+      if(! row[0].empty()) { // Hack because NULL values are passed on as empty strings
+        after=DNSName(boost::replace_all_copy(row[0]," ",".")).labelReverse();
+      }
     }
     d_afterOrderQuery_stmt->reset();
   }