From dbe1fe7bb2a1d7dd2d888694744a894207599723 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Fri, 7 Oct 2022 18:01:03 +0200 Subject: [PATCH] dnsdist: Apply Charles-Henri's suggestions (thanks!) --- pdns/dnsdistdist/dnsdist-lua-bindings-network.cc | 2 +- pdns/iputils.cc | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pdns/dnsdistdist/dnsdist-lua-bindings-network.cc b/pdns/dnsdistdist/dnsdist-lua-bindings-network.cc index 5d95a892de..3d2c21c4fb 100644 --- a/pdns/dnsdistdist/dnsdist-lua-bindings-network.cc +++ b/pdns/dnsdistdist/dnsdist-lua-bindings-network.cc @@ -61,7 +61,7 @@ void setupLuaBindingsNetwork(LuaContext& luaCtx, bool client) }); luaCtx.registerFunction::*)(const std::string&, uint16_t, std::function)>("addUnixListeningEndpoint", [client](std::shared_ptr& listener, const std::string& path, uint16_t endpointID, std::function cb) { - if (client) { + if (client || !cb) { return false; } diff --git a/pdns/iputils.cc b/pdns/iputils.cc index e28927d1e4..1c25ae5615 100644 --- a/pdns/iputils.cc +++ b/pdns/iputils.cc @@ -591,6 +591,10 @@ std::vector getListOfAddressesOfNetworkInterface(const std::string #if HAVE_GETIFADDRS static uint8_t convertNetmaskToBits(const struct in_addr* mask, socklen_t len) { + if (mask == nullptr || len > 128) { + throw std::runtime_error("Invalid parameters passed to convertNetmaskToBits"); + } + uint8_t result = 0; // for all bytes in the address (4 for IPv4, 16 for IPv6) for (size_t idx = 0; idx < len; idx++) { -- 2.47.2