]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Bail out when a `NULL` pointer is passed to `dnsdist_ffi_dnsquestion_get_pro... 17290/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 5 May 2026 09:17:19 +0000 (11:17 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 5 May 2026 09:18:05 +0000 (11:18 +0200)
Reported by ylwango613, thanks!

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-lua-ffi.cc

index f1791f4ae180aa7d5fde600e08ac6ff69a89fd16..2c4af6d9ade920d1eca58e3d599518bf4e615172 100644 (file)
@@ -1267,14 +1267,10 @@ bool dnsdist_ffi_dnsquestion_add_proxy_protocol_values(dnsdist_ffi_dnsquestion_t
 
 size_t dnsdist_ffi_dnsquestion_get_proxy_protocol_values(dnsdist_ffi_dnsquestion_t* dnsQuestion, const dnsdist_ffi_proxy_protocol_value_t** out)
 {
-  if (dnsQuestion == nullptr || dnsQuestion->dq == nullptr || !dnsQuestion->dq->proxyProtocolValues) {
+  if (dnsQuestion == nullptr || dnsQuestion->dq == nullptr || !dnsQuestion->dq->proxyProtocolValues || out == nullptr) {
     return 0;
   }
 
-  if (out == nullptr) {
-    return dnsQuestion->proxyProtocolValuesVect->size();
-  }
-
   dnsQuestion->proxyProtocolValuesVect = std::make_unique<std::vector<dnsdist_ffi_proxy_protocol_value_t>>(dnsQuestion->dq->proxyProtocolValues->size());
   for (size_t counter = 0; counter < dnsQuestion->dq->proxyProtocolValues->size(); ++counter) {
     const auto& entry = dnsQuestion->dq->proxyProtocolValues->at(counter);