Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pdns for openSUSE:Factory checked in at 2024-05-28 17:30:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pdns (Old) and /work/SRC/openSUSE:Factory/.pdns.new.24587 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdns" Tue May 28 17:30:19 2024 rev:93 rq:1177309 version:4.9.1 Changes: -------- --- /work/SRC/openSUSE:Factory/pdns/pdns.changes 2024-04-02 16:45:55.956653869 +0200 +++ /work/SRC/openSUSE:Factory/.pdns.new.24587/pdns.changes 2024-05-28 17:31:22.333611263 +0200 @@ -1,0 +2,27 @@ +Tue May 28 09:49:18 UTC 2024 - Adam Majer <adam.ma...@suse.de> + +- Update to version 4.9.1 + * Improvements + + rpm: Change home directory to /var/lib/pdns + + m4: Add option for 64-bit time_t on 32-bit systems with glibc-2.34 (Sven Wegener) + + Wrap backend factories in smart pointers + + (optionally) drop whitespace on join + + * Bug Fixes + + autoconf: allow prerelease systemd versions (Chris Hofstaedtler) + + ixfrdist: Fix broken âuidâ and âgidâ parsing for non-numerical values + + YaHTTP: Enforce max # of request fields and max request line size + + Fix memory leaks in the bind file format parser + + dnsproxy: fix build on s390x (Chris Hofstaedtler) + + pdnsutil check-zone: accept LUA A/AAAA as SVCB address targets + + Properly finalize PKCS11 modules before releasing them (Aki Tuomi) + + donât crash when a catalog SOA is invalid + + debian: adjust option name in shipped postinst + +------------------------------------------------------------------- +Tue Apr 2 22:10:29 UTC 2024 - Adam Mizerski <a...@mizerski.pl> + +- fix building on older openSUSE releases +- added pdns-4.9.0-fix_boost.patch + +------------------------------------------------------------------- Old: ---- pdns-4.9.0.tar.bz2 pdns-4.9.0.tar.bz2.sig New: ---- pdns-4.9.0-fix_boost.patch pdns-4.9.1.tar.bz2 pdns-4.9.1.tar.bz2.sig BETA DEBUG BEGIN: New:- fix building on older openSUSE releases - added pdns-4.9.0-fix_boost.patch BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pdns.spec ++++++ --- /var/tmp/diff_new_pack.CINqsi/_old 2024-05-28 17:31:22.941633496 +0200 +++ /var/tmp/diff_new_pack.CINqsi/_new 2024-05-28 17:31:22.941633496 +0200 @@ -43,9 +43,11 @@ %bcond_with pdns_lmdb %endif -%if 0%{?suse_version} < 1500 -BuildRequires: gcc9-c++ -%define compiler_ver -9 +%if 0%{?sle_version} && 0%{?sle_version} < 160000 +# std::filesystem is supported since gcc8, but default gcc is 7 +BuildRequires: gcc12 +BuildRequires: gcc12-c++ +%define compiler_ver -12 %else BuildRequires: gcc-c++ %endif @@ -57,7 +59,7 @@ %endif Name: pdns -Version: 4.9.0 +Version: 4.9.1 Release: 0 Summary: Authoritative-only nameserver License: GPL-2.0-only @@ -67,12 +69,13 @@ Source1: https://downloads.powerdns.com/releases/pdns-%{version}.tar.bz2.sig Source2: https://powerdns.com/powerdns-keyblock.asc#/pdns.keyring Patch0: pdns-4.0.3_allow_dacoverride_in_capset.patch +# PATCH-FIX-OPENSUSE pdns-4.9.0-fix_boost.patch -- fix including boost headers with older releases +Patch1: pdns-4.9.0-fix_boost.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: bison BuildRequires: curl-devel BuildRequires: flex -BuildRequires: gcc-c++ BuildRequires: gdbm-devel BuildRequires: libmysqlclient-devel BuildRequires: libsodium-devel @@ -84,7 +87,9 @@ BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(systemd) %{?systemd_ordering} -%if 0%{?suse_version} > 1325 +%if 0%{?suse_version} +# version 1.55 adds support for boost::hash<CompositeKeyResult> used in auth-querycache.cc +BuildRequires: libboost_headers-devel >= 1.55 BuildRequires: libboost_program_options-devel BuildRequires: libboost_serialization-devel %else @@ -264,6 +269,7 @@ %autosetup -n %{name}-%{version} -p1 %build +export CC=gcc%{?compiler_ver} export CXX=g++%{?compiler_ver} %configure \ --docdir=%{_docdir}/%{name}/ \ ++++++ pdns-4.9.0-fix_boost.patch ++++++ Index: pdns-4.9.0/pdns/dnsparser.hh =================================================================== --- pdns-4.9.0.orig/pdns/dnsparser.hh +++ pdns-4.9.0/pdns/dnsparser.hh @@ -39,6 +39,8 @@ #include "iputils.hh" #include "svc-records.hh" +#include <boost/utility.hpp> + /** DNS records have three representations: 1) in the packet 2) parsed in a class, ready for use Index: pdns-4.9.0/pdns/dnswriter.hh =================================================================== --- pdns-4.9.0.orig/pdns/dnswriter.hh +++ pdns-4.9.0/pdns/dnswriter.hh @@ -30,6 +30,7 @@ #include "svc-records.hh" #include <arpa/inet.h> +#include <boost/utility.hpp> /** this class can be used to write DNS packets. It knows about DNS in the sense that it makes the packet header and record headers. Index: pdns-4.9.0/pdns/iputils.hh =================================================================== --- pdns-4.9.0.orig/pdns/iputils.hh +++ pdns-4.9.0/pdns/iputils.hh @@ -33,6 +33,8 @@ #include <netdb.h> #include <sstream> +#include <boost/utility.hpp> + #include "namespaces.hh" #ifdef __APPLE__ Index: pdns-4.9.0/pdns/auth-zonecache.hh =================================================================== --- pdns-4.9.0.orig/pdns/auth-zonecache.hh +++ pdns-4.9.0/pdns/auth-zonecache.hh @@ -27,6 +27,8 @@ #include "lock.hh" #include "misc.hh" +#include <boost/utility.hpp> + class AuthZoneCache : public boost::noncopyable { public: ++++++ pdns-4.9.0.tar.bz2 -> pdns-4.9.1.tar.bz2 ++++++ ++++ 2026 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/configure.ac new/pdns-4.9.1/configure.ac --- old/pdns-4.9.0/configure.ac 2024-03-15 10:18:43.000000000 +0100 +++ new/pdns-4.9.1/configure.ac 2024-05-28 09:44:54.000000000 +0200 @@ -1,6 +1,6 @@ AC_PREREQ([2.69]) -AC_INIT([pdns], [4.9.0]) +AC_INIT([pdns], [4.9.1]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-ustar -Wno-portability subdir-objects parallel-tests 1.11]) AM_SILENT_RULES([yes]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/calidns.1 new/pdns-4.9.1/docs/calidns.1 --- old/pdns-4.9.0/docs/calidns.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/calidns.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "CALIDNS" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "CALIDNS" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME calidns \- A DNS recursor testing tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnsbulktest.1 new/pdns-4.9.1/docs/dnsbulktest.1 --- old/pdns-4.9.0/docs/dnsbulktest.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnsbulktest.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSBULKTEST" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSBULKTEST" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsbulktest \- A debugging tool for intermittent resolver failures .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnsgram.1 new/pdns-4.9.1/docs/dnsgram.1 --- old/pdns-4.9.0/docs/dnsgram.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnsgram.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSGRAM" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSGRAM" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsgram \- A debugging tool for intermittent resolver failures .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnspcap2calidns.1 new/pdns-4.9.1/docs/dnspcap2calidns.1 --- old/pdns-4.9.0/docs/dnspcap2calidns.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnspcap2calidns.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSPCAP2CALIDNS" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSPCAP2CALIDNS" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnspcap2calidns \- A tool to convert PCAPs of DNS traffic to calidns input .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnspcap2protobuf.1 new/pdns-4.9.1/docs/dnspcap2protobuf.1 --- old/pdns-4.9.0/docs/dnspcap2protobuf.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnspcap2protobuf.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSPCAP2PROTOBUF" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSPCAP2PROTOBUF" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnspcap2protobuf \- A tool to convert PCAPs of DNS traffic to PowerDNS Protobuf .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnsreplay.1 new/pdns-4.9.1/docs/dnsreplay.1 --- old/pdns-4.9.0/docs/dnsreplay.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnsreplay.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSREPLAY" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSREPLAY" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsreplay \- A PowerDNS nameserver debugging tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnsscan.1 new/pdns-4.9.1/docs/dnsscan.1 --- old/pdns-4.9.0/docs/dnsscan.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnsscan.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSSCAN" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSSCAN" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsscan \- List the amount of queries per qtype in a pcap .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnsscope.1 new/pdns-4.9.1/docs/dnsscope.1 --- old/pdns-4.9.0/docs/dnsscope.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnsscope.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSSCOPE" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSSCOPE" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsscope \- A PowerDNS nameserver debugging tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnstcpbench.1 new/pdns-4.9.1/docs/dnstcpbench.1 --- old/pdns-4.9.0/docs/dnstcpbench.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnstcpbench.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSTCPBENCH" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSTCPBENCH" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnstcpbench \- tool to perform TCP benchmarking of nameservers .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dnswasher.1 new/pdns-4.9.1/docs/dnswasher.1 --- old/pdns-4.9.0/docs/dnswasher.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dnswasher.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSWASHER" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSWASHER" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnswasher \- A PowerDNS nameserver debugging tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/dumresp.1 new/pdns-4.9.1/docs/dumresp.1 --- old/pdns-4.9.0/docs/dumresp.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/dumresp.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DUMRESP" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "DUMRESP" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME dumresp \- A dumb DNS responder .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/ixfrdist.1 new/pdns-4.9.1/docs/ixfrdist.1 --- old/pdns-4.9.0/docs/ixfrdist.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/ixfrdist.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "IXFRDIST" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "IXFRDIST" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME ixfrdist \- An IXFR/AXFR-only server that re-distributes zones .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/ixfrdist.yml.5 new/pdns-4.9.1/docs/ixfrdist.yml.5 --- old/pdns-4.9.0/docs/ixfrdist.yml.5 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/ixfrdist.yml.5 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "IXFRDIST.YML" "5" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "IXFRDIST.YML" "5" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME ixfrdist.yml \- The ixfrdist configuration file .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/ixplore.1 new/pdns-4.9.1/docs/ixplore.1 --- old/pdns-4.9.0/docs/ixplore.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/ixplore.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "IXPLORE" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "IXPLORE" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME ixplore \- A tool that provides insights into IXFRs .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/nproxy.1 new/pdns-4.9.1/docs/nproxy.1 --- old/pdns-4.9.0/docs/nproxy.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/nproxy.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "NPROXY" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "NPROXY" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME nproxy \- DNS notification proxy .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/nsec3dig.1 new/pdns-4.9.1/docs/nsec3dig.1 --- old/pdns-4.9.0/docs/nsec3dig.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/nsec3dig.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "NSEC3DIG" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "NSEC3DIG" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME nsec3dig \- Show and validate NSEC3 proofs .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/pdns_control.1 new/pdns-4.9.1/docs/pdns_control.1 --- old/pdns-4.9.0/docs/pdns_control.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/pdns_control.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNS_CONTROL" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNS_CONTROL" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdns_control \- Control the PowerDNS nameserver .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/pdns_notify.1 new/pdns-4.9.1/docs/pdns_notify.1 --- old/pdns-4.9.0/docs/pdns_notify.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/pdns_notify.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNS_NOTIFY" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNS_NOTIFY" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdns_notify \- A simple DNS NOTIFY sender .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/pdns_server.1 new/pdns-4.9.1/docs/pdns_server.1 --- old/pdns-4.9.0/docs/pdns_server.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/pdns_server.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNS_SERVER" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNS_SERVER" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdns_server \- The PowerDNS Authoritative Nameserver .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/pdnsutil.1 new/pdns-4.9.1/docs/pdnsutil.1 --- old/pdns-4.9.0/docs/pdnsutil.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/pdnsutil.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNSUTIL" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNSUTIL" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdnsutil \- PowerDNS record and DNSSEC command and control .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/saxfr.1 new/pdns-4.9.1/docs/saxfr.1 --- old/pdns-4.9.0/docs/saxfr.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/saxfr.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SAXFR" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "SAXFR" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME saxfr \- Perform AXFRs and show information about it .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/sdig.1 new/pdns-4.9.1/docs/sdig.1 --- old/pdns-4.9.0/docs/sdig.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/sdig.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SDIG" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "SDIG" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME sdig \- Perform a DNS query and show the results .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/zone2json.1 new/pdns-4.9.1/docs/zone2json.1 --- old/pdns-4.9.0/docs/zone2json.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/zone2json.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ZONE2JSON" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "ZONE2JSON" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME zone2json \- convert BIND zones to JSON .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/zone2ldap.1 new/pdns-4.9.1/docs/zone2ldap.1 --- old/pdns-4.9.0/docs/zone2ldap.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/zone2ldap.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ZONE2LDAP" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "ZONE2LDAP" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME zone2ldap \- convert zonefiles to ldif .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/docs/zone2sql.1 new/pdns-4.9.1/docs/zone2sql.1 --- old/pdns-4.9.0/docs/zone2sql.1 2024-03-15 10:19:34.000000000 +0100 +++ new/pdns-4.9.1/docs/zone2sql.1 2024-05-28 09:45:48.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ZONE2SQL" "1" "Mar 15, 2024" "" "PowerDNS Authoritative Server" +.TH "ZONE2SQL" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" .SH NAME zone2sql \- convert BIND zones to SQL .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/ext/yahttp/yahttp/utility.hpp new/pdns-4.9.1/ext/yahttp/yahttp/utility.hpp --- old/pdns-4.9.0/ext/yahttp/yahttp/utility.hpp 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/ext/yahttp/yahttp/utility.hpp 2024-05-28 09:44:43.000000000 +0200 @@ -1,4 +1,13 @@ #pragma once + +#ifndef YAHTTP_MAX_REQUEST_LINE_SIZE +#define YAHTTP_MAX_REQUEST_LINE_SIZE 8192 +#endif + +#ifndef YAHTTP_MAX_REQUEST_FIELDS +#define YAHTTP_MAX_REQUEST_FIELDS 100 +#endif + namespace YaHTTP { static const char *MONTHS[] = {0,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",0}; //<! List of months static const char *DAYS[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat",0}; //<! List of days @@ -364,7 +373,10 @@ } }; //<! static HTTP codes to text mappings - static strstr_map_t parseUrlParameters(std::string parameters) { + static strstr_map_t parseUrlParameters(const std::string& parameters) { + if (parameters.size() > YAHTTP_MAX_REQUEST_LINE_SIZE) { + return {}; + } std::string::size_type pos = 0; strstr_map_t parameter_map; while (pos != std::string::npos) { @@ -390,13 +402,14 @@ // no parameters at all break; } - key = decodeURL(key); - value = decodeURL(value); - parameter_map[key] = std::move(value); + parameter_map[decodeURL(key)] = decodeURL(value); if (nextpos == std::string::npos) { // no more parameters left break; } + if (parameter_map.size() >= YAHTTP_MAX_REQUEST_FIELDS) { + break; + } pos = nextpos+1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/m4/pdns_check_time_t.m4 new/pdns-4.9.1/m4/pdns_check_time_t.m4 --- old/pdns-4.9.0/m4/pdns_check_time_t.m4 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/m4/pdns_check_time_t.m4 2024-05-28 09:44:43.000000000 +0200 @@ -1,4 +1,23 @@ AC_DEFUN([PDNS_CHECK_TIME_T], [ +AC_ARG_ENABLE([experimental_64bit_time_t_support_on_glibc], + AS_HELP_STRING([--enable-experimental-64bit-time_t-support-on-glibc], + [enable experimental 64bit time_t support on >=glibc-2.34 for 32bit systems @<:@default=no@:>@] + ), + [enable_experimental_64bit_time_t_support_on_glibc=$enableval], + [enable_experimental_64bit_time_t_support_on_glibc=no] +) +AS_IF([test "x$enable_experimental_64bit_time_t_support_on_glibc" != "xno"], + # _TIME_BITS=64 is supported on glibc-2.34 and requires _FILE_OFFSET_BITS=64 + [AC_EGREP_CPP(yes, [ + #include <features.h> + #if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 34 || __GLIBC__ > 2 + yes + #endif + ], [ + CFLAGS="${CFLAGS} -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64" + CXXFLAGS="${CXXFLAGS} -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64" + ])] +) AX_COMPILE_CHECK_SIZEOF(time_t) AS_IF([test $ac_size -lt 8], [AC_MSG_ERROR([size of time_t is $ac_size, which is not large enough to fix the y2k38 bug])]) AX_CHECK_SIGN([time_t], [:], [AC_MSG_ERROR([time_t is unsigned, PowerDNS code relies on it being signed])], [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/m4/systemd.m4 new/pdns-4.9.1/m4/systemd.m4 --- old/pdns-4.9.0/m4/systemd.m4 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/m4/systemd.m4 2024-05-28 09:44:43.000000000 +0200 @@ -134,7 +134,7 @@ AC_PATH_PROG([SYSTEMCTL], [systemctl], [no]) AS_IF([test "$SYSTEMCTL" = "no"], [AC_MSG_ERROR([systemctl not found])], [ - _systemd_version=`${SYSTEMCTL} --version|head -1 |cut -d" " -f 2` + _systemd_version=`${SYSTEMCTL} --version|head -1 | tr ".~" " " | cut -d" " -f 2` if test $_systemd_version -ge 183; then systemd_private_tmp=y fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/bindbackend/bindbackend2.cc new/pdns-4.9.1/modules/bindbackend/bindbackend2.cc --- old/pdns-4.9.0/modules/bindbackend/bindbackend2.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/bindbackend/bindbackend2.cc 2024-05-28 09:44:43.000000000 +0200 @@ -1535,7 +1535,7 @@ public: Bind2Loader() { - BackendMakers().report(new Bind2Factory); + BackendMakers().report(std::make_unique<Bind2Factory>()); g_log << Logger::Info << "[bind2backend] This is the bind backend version " << VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/geoipbackend/geoipbackend.cc new/pdns-4.9.1/modules/geoipbackend/geoipbackend.cc --- old/pdns-4.9.0/modules/geoipbackend/geoipbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/geoipbackend/geoipbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -1199,7 +1199,7 @@ public: GeoIPLoader() { - BackendMakers().report(new GeoIPFactory); + BackendMakers().report(std::make_unique<GeoIPFactory>()); g_log << Logger::Info << "[geoipbackend] This is the geoip backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/gmysqlbackend/gmysqlbackend.cc new/pdns-4.9.1/modules/gmysqlbackend/gmysqlbackend.cc --- old/pdns-4.9.0/modules/gmysqlbackend/gmysqlbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/gmysqlbackend/gmysqlbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -185,7 +185,7 @@ //! This reports us to the main UeberBackend class gMySQLLoader() { - BackendMakers().report(new gMySQLFactory("gmysql")); + BackendMakers().report(std::make_unique<gMySQLFactory>("gmysql")); g_log << Logger::Info << "[gmysqlbackend] This is the gmysql backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/godbcbackend/godbcbackend.cc new/pdns-4.9.1/modules/godbcbackend/godbcbackend.cc --- old/pdns-4.9.0/modules/godbcbackend/godbcbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/godbcbackend/godbcbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -169,7 +169,7 @@ //! This reports us to the main UeberBackend class gODBCLoader() { - BackendMakers().report(new gODBCFactory("godbc")); + BackendMakers().report(std::make_unique<gODBCFactory>("godbc")); g_log << Logger::Warning << "This is module godbcbackend reporting" << std::endl; } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/gpgsqlbackend/gpgsqlbackend.cc new/pdns-4.9.1/modules/gpgsqlbackend/gpgsqlbackend.cc --- old/pdns-4.9.0/modules/gpgsqlbackend/gpgsqlbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/gpgsqlbackend/gpgsqlbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -192,7 +192,7 @@ //! This reports us to the main UeberBackend class gPgSQLLoader() { - BackendMakers().report(new gPgSQLFactory("gpgsql")); + BackendMakers().report(std::make_unique<gPgSQLFactory>("gpgsql")); g_log << Logger::Info << "[gpgsqlbackend] This is the gpgsql backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/gsqlite3backend/gsqlite3backend.cc new/pdns-4.9.1/modules/gsqlite3backend/gsqlite3backend.cc --- old/pdns-4.9.0/modules/gsqlite3backend/gsqlite3backend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/gsqlite3backend/gsqlite3backend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -179,7 +179,7 @@ //! This reports us to the main UeberBackend class gSQLite3Loader() { - BackendMakers().report(new gSQLite3Factory("gsqlite3")); + BackendMakers().report(std::make_unique<gSQLite3Factory>("gsqlite3")); g_log << Logger::Info << "[gsqlite3] This is the gsqlite3 backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/ldapbackend/ldapbackend.cc new/pdns-4.9.1/modules/ldapbackend/ldapbackend.cc --- old/pdns-4.9.0/modules/ldapbackend/ldapbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/ldapbackend/ldapbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -293,12 +293,10 @@ class LdapLoader { - LdapFactory factory; - public: LdapLoader() { - BackendMakers().report(&factory); + BackendMakers().report(std::make_unique<LdapFactory>()); g_log << Logger::Info << "[ldapbackend] This is the ldap backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/lmdbbackend/lmdbbackend.cc new/pdns-4.9.1/modules/lmdbbackend/lmdbbackend.cc --- old/pdns-4.9.0/modules/lmdbbackend/lmdbbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/lmdbbackend/lmdbbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -2792,7 +2792,7 @@ public: LMDBLoader() { - BackendMakers().report(new LMDBFactory); + BackendMakers().report(std::make_unique<LMDBFactory>()); g_log << Logger::Info << "[lmdbbackend] This is the lmdb backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/lua2backend/lua2backend.cc new/pdns-4.9.1/modules/lua2backend/lua2backend.cc --- old/pdns-4.9.0/modules/lua2backend/lua2backend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/lua2backend/lua2backend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -62,7 +62,7 @@ public: Lua2Loader() { - BackendMakers().report(new Lua2Factory); + BackendMakers().report(std::make_unique<Lua2Factory>()); g_log << Logger::Info << "[lua2backend] This is the lua2 backend version " VERSION #ifndef REPRODUCIBLE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/pipebackend/pipebackend.cc new/pdns-4.9.1/modules/pipebackend/pipebackend.cc --- old/pdns-4.9.0/modules/pipebackend/pipebackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/pipebackend/pipebackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -379,7 +379,7 @@ public: PipeLoader() { - BackendMakers().report(new PipeFactory); + BackendMakers().report(std::make_unique<PipeFactory>()); g_log << Logger::Info << kBackendId << " This is the pipe backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/remotebackend/remotebackend.cc new/pdns-4.9.1/modules/remotebackend/remotebackend.cc --- old/pdns-4.9.0/modules/remotebackend/remotebackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/remotebackend/remotebackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -1007,7 +1007,7 @@ RemoteLoader::RemoteLoader() { - BackendMakers().report(new RemoteBackendFactory); + BackendMakers().report(std::make_unique<RemoteBackendFactory>()); g_log << Logger::Info << kBackendId << " This is the remote backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/remotebackend/test-remotebackend-http.cc new/pdns-4.9.1/modules/remotebackend/test-remotebackend-http.cc --- old/pdns-4.9.0/modules/remotebackend/test-remotebackend-http.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/remotebackend/test-remotebackend-http.cc 2024-05-28 09:44:43.000000000 +0200 @@ -75,7 +75,7 @@ try { // setup minimum arguments ::arg().set("module-dir") = "./.libs"; - new RemoteLoader(); + auto loader = std::make_unique<RemoteLoader>(); BackendMakers().launch("remote"); // then get us a instance of it ::arg().set("remote-connection-string") = "http:url=http://localhost:62434/dns"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/remotebackend/test-remotebackend-json.cc new/pdns-4.9.1/modules/remotebackend/test-remotebackend-json.cc --- old/pdns-4.9.0/modules/remotebackend/test-remotebackend-json.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/remotebackend/test-remotebackend-json.cc 2024-05-28 09:44:43.000000000 +0200 @@ -73,7 +73,7 @@ try { // setup minimum arguments ::arg().set("module-dir") = "./.libs"; - new RemoteLoader(); + auto loader = std::make_unique<RemoteLoader>(); BackendMakers().launch("remote"); // then get us a instance of it ::arg().set("remote-connection-string") = "http:url=http://localhost:62434/dns/endpoint.json,post=1,post_json=1"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/remotebackend/test-remotebackend-pipe.cc new/pdns-4.9.1/modules/remotebackend/test-remotebackend-pipe.cc --- old/pdns-4.9.0/modules/remotebackend/test-remotebackend-pipe.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/remotebackend/test-remotebackend-pipe.cc 2024-05-28 09:44:43.000000000 +0200 @@ -73,7 +73,7 @@ try { // setup minimum arguments ::arg().set("module-dir") = "./.libs"; - new RemoteLoader(); + auto loader = std::make_unique<RemoteLoader>(); BackendMakers().launch("remote"); // then get us a instance of it ::arg().set("remote-connection-string") = "pipe:command=unittest_pipe.rb"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/remotebackend/test-remotebackend-post.cc new/pdns-4.9.1/modules/remotebackend/test-remotebackend-post.cc --- old/pdns-4.9.0/modules/remotebackend/test-remotebackend-post.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/remotebackend/test-remotebackend-post.cc 2024-05-28 09:44:43.000000000 +0200 @@ -73,7 +73,7 @@ try { // setup minimum arguments ::arg().set("module-dir") = "./.libs"; - new RemoteLoader(); + auto loader = std::make_unique<RemoteLoader>(); BackendMakers().launch("remote"); // then get us a instance of it ::arg().set("remote-connection-string") = "http:url=http://localhost:62434/dns,post=1"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/remotebackend/test-remotebackend-unix.cc new/pdns-4.9.1/modules/remotebackend/test-remotebackend-unix.cc --- old/pdns-4.9.0/modules/remotebackend/test-remotebackend-unix.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/remotebackend/test-remotebackend-unix.cc 2024-05-28 09:44:43.000000000 +0200 @@ -73,7 +73,7 @@ try { // setup minimum arguments ::arg().set("module-dir") = "./.libs"; - new RemoteLoader(); + auto loader = std::make_unique<RemoteLoader>(); BackendMakers().launch("remote"); // then get us a instance of it ::arg().set("remote-connection-string") = "unix:path=/tmp/remotebackend.sock"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/remotebackend/test-remotebackend-zeromq.cc new/pdns-4.9.1/modules/remotebackend/test-remotebackend-zeromq.cc --- old/pdns-4.9.0/modules/remotebackend/test-remotebackend-zeromq.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/remotebackend/test-remotebackend-zeromq.cc 2024-05-28 09:44:43.000000000 +0200 @@ -75,7 +75,7 @@ try { // setup minimum arguments ::arg().set("module-dir") = "./.libs"; - new RemoteLoader(); + auto loader = std::make_unique<RemoteLoader>(); BackendMakers().launch("remote"); // then get us a instance of it ::arg().set("remote-connection-string") = "zeromq:endpoint=ipc:///tmp/remotebackend.0"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/modules/tinydnsbackend/tinydnsbackend.cc new/pdns-4.9.1/modules/tinydnsbackend/tinydnsbackend.cc --- old/pdns-4.9.0/modules/tinydnsbackend/tinydnsbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/modules/tinydnsbackend/tinydnsbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -393,7 +393,7 @@ public: TinyDNSLoader() { - BackendMakers().report(new TinyDNSFactory); + BackendMakers().report(std::make_unique<TinyDNSFactory>()); g_log << Logger::Info << "[tinydnsbackend] This is the tinydns backend version " VERSION #ifndef REPRODUCIBLE << " (" __DATE__ " " __TIME__ ")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/auth-main.cc new/pdns-4.9.1/pdns/auth-main.cc --- old/pdns-4.9.0/pdns/auth-main.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/auth-main.cc 2024-05-28 09:44:43.000000000 +0200 @@ -307,6 +307,7 @@ ::arg().setSwitch("8bit-dns", "Allow 8bit dns queries") = "no"; #ifdef HAVE_LUA_RECORDS ::arg().setSwitch("enable-lua-records", "Process LUA records for all zones (metadata overrides this)") = "no"; + ::arg().setSwitch("lua-records-insert-whitespace", "Insert whitespace when combining LUA chunks") = "yes"; ::arg().set("lua-records-exec-limit", "LUA records scripts execution limit (instructions count). Values <= 0 mean no limit") = "1000"; ::arg().set("lua-health-checks-expire-delay", "Stops doing health checks after the record hasn't been used for that delay (in seconds)") = "3600"; ::arg().set("lua-health-checks-interval", "LUA records health checks monitoring interval in seconds") = "5"; @@ -702,6 +703,7 @@ g_doLuaRecord = ::arg().mustDo("enable-lua-records"); g_LuaRecordSharedState = (::arg()["enable-lua-records"] == "shared"); g_luaRecordExecLimit = ::arg().asNum("lua-records-exec-limit"); + g_luaRecordInsertWhitespace = ::arg().mustDo("lua-records-insert-whitespace"); g_luaHealthChecksInterval = ::arg().asNum("lua-health-checks-interval"); g_luaConsistentHashesExpireDelay = ::arg().asNum("lua-consistent-hashes-expire-delay"); g_luaConsistentHashesCleanupInterval = ::arg().asNum("lua-consistent-hashes-cleanup-interval"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/auth-main.hh new/pdns-4.9.1/pdns/auth-main.hh --- old/pdns-4.9.0/pdns/auth-main.hh 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/auth-main.hh 2024-05-28 09:44:43.000000000 +0200 @@ -50,6 +50,7 @@ #ifdef HAVE_LUA_RECORDS extern bool g_doLuaRecord; extern bool g_LuaRecordSharedState; +extern bool g_luaRecordInsertWhitespace; extern time_t g_luaHealthChecksInterval; extern time_t g_luaHealthChecksExpireDelay; extern time_t g_luaConsistentHashesExpireDelay; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/auth-primarycommunicator.cc new/pdns-4.9.1/pdns/auth-primarycommunicator.cc --- old/pdns-4.9.0/pdns/auth-primarycommunicator.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/auth-primarycommunicator.cc 2024-05-28 09:44:43.000000000 +0200 @@ -157,16 +157,21 @@ continue; } - B->setDomainMetadata(di.zone, "CATALOG-HASH", mapHash); - - g_log << Logger::Warning << "new CATALOG-HASH '" << mapHash << "' for zone '" << di.zone << "'" << endl; - SOAData sd; - if (!B->getSOAUncached(di.zone, sd)) { - g_log << Logger::Warning << "SOA lookup failed for producer zone '" << di.zone << "'" << endl; + try { + if (!B->getSOAUncached(di.zone, sd)) { + g_log << Logger::Warning << "SOA lookup failed for producer zone '" << di.zone << "'" << endl; + continue; + } + } + catch (...) { continue; } + g_log << Logger::Warning << "new CATALOG-HASH '" << mapHash << "' for zone '" << di.zone << "'" << endl; + + B->setDomainMetadata(di.zone, "CATALOG-HASH", mapHash); + DNSResourceRecord rr; makeIncreasedSOARecord(sd, "EPOCH", "", rr); di.backend->startTransaction(sd.qname, -1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/backends/gsql/gsqlbackend.cc new/pdns-4.9.1/pdns/backends/gsql/gsqlbackend.cc --- old/pdns-4.9.0/pdns/backends/gsql/gsqlbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/backends/gsql/gsqlbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -463,7 +463,7 @@ continue; } catch (...) { - g_log << Logger::Warning << __PRETTY_FUNCTION__ << " error while parsing SOA data for zone '" << di.zone << endl; + g_log << Logger::Warning << __PRETTY_FUNCTION__ << " error while parsing SOA data for zone '" << di.zone << "'" << endl; continue; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/bindparser.cc new/pdns-4.9.1/pdns/bindparser.cc --- old/pdns-4.9.0/pdns/bindparser.cc 2024-03-15 10:19:04.000000000 +0100 +++ new/pdns-4.9.1/pdns/bindparser.cc 2024-05-28 09:45:15.000000000 +0200 @@ -87,7 +87,7 @@ #define YYSTYPE char * -extern "C" +extern "C" { int yyparse(void); int yylex(void); @@ -105,7 +105,7 @@ extern int linenumber; static void yyerror(const char *str) { - extern char *current_filename; + extern char *current_filename; throw PDNSException("Error in bind configuration '"+string(current_filename)+"' on line "+std::to_string(linenumber)+": "+str); } @@ -114,7 +114,7 @@ BindDomainInfo s_di; void BindParser::parse(const string &fname) -{ +{ yydebug=0; yyin=fopen(fname.c_str(),"r"); yyrestart(yyin); @@ -717,11 +717,11 @@ static const yytype_int16 yyrline[] = { 0, 115, 115, 117, 120, 120, 120, 120, 123, 125, - 129, 133, 141, 152, 154, 159, 159, 162, 165, 167, - 171, 174, 176, 179, 179, 182, 182, 185, 192, 195, - 197, 200, 206, 208, 211, 211, 211, 214, 218, 221, - 223, 229, 229, 229, 233, 233, 233, 236, 239, 242, - 244, 247, 254, 256, 259, 267, 276, 285, 291 + 129, 133, 141, 152, 154, 159, 163, 166, 169, 171, + 175, 181, 183, 186, 186, 189, 189, 192, 199, 202, + 204, 207, 213, 215, 218, 222, 222, 228, 232, 235, + 237, 243, 243, 243, 247, 247, 247, 250, 253, 256, + 258, 261, 268, 270, 273, 281, 289, 298, 304 }; #endif @@ -1366,71 +1366,110 @@ #line 1367 "bindparser.cc" break; + case 15: /* acl_command: ACLTOK quotedname acl_block */ +#line 160 "bindparser.yy" + { + free(yyvsp[-1]); + } +#line 1375 "bindparser.cc" + break; + + case 20: /* acl: AWORD */ +#line 176 "bindparser.yy" + { + free(yyvsp[0]); + } +#line 1383 "bindparser.cc" + break; + case 27: /* options_directory_command: DIRECTORYTOK quotedname */ -#line 186 "bindparser.yy" +#line 193 "bindparser.yy" { parent->setDirectory(yyvsp[0]); free(yyvsp[0]); } -#line 1376 "bindparser.cc" +#line 1392 "bindparser.cc" break; case 31: /* also_notify: AWORD */ -#line 201 "bindparser.yy" +#line 208 "bindparser.yy" { parent->addAlsoNotify(yyvsp[0]); free(yyvsp[0]); } -#line 1385 "bindparser.cc" +#line 1401 "bindparser.cc" + break; + + case 34: /* term: AWORD */ +#line 219 "bindparser.yy" + { + free(yyvsp[0]); + } +#line 1409 "bindparser.cc" + break; + + case 36: /* term: quotedname */ +#line 223 "bindparser.yy" + { + free(yyvsp[0]); + } +#line 1417 "bindparser.cc" break; case 51: /* zone_also_notify: AWORD */ -#line 248 "bindparser.yy" +#line 262 "bindparser.yy" { s_di.alsoNotify.insert(yyvsp[0]); free(yyvsp[0]); } -#line 1394 "bindparser.cc" +#line 1426 "bindparser.cc" break; case 54: /* primary: AWORD */ -#line 260 "bindparser.yy" +#line 274 "bindparser.yy" { s_di.primaries.push_back(ComboAddress(yyvsp[0], 53)); free(yyvsp[0]); } -#line 1403 "bindparser.cc" +#line 1435 "bindparser.cc" break; case 55: /* zone_file_command: FILETOK quotedname */ -#line 268 "bindparser.yy" +#line 282 "bindparser.yy" { - // printf("Found a filename: '%s'\n",$2); s_di.filename=yyvsp[0]; free(yyvsp[0]); } -#line 1413 "bindparser.cc" +#line 1444 "bindparser.cc" break; case 56: /* zone_type_command: TYPETOK AWORD */ -#line 277 "bindparser.yy" +#line 290 "bindparser.yy" { s_di.type=yyvsp[0]; free(yyvsp[0]); } -#line 1422 "bindparser.cc" +#line 1453 "bindparser.cc" break; case 57: /* quotedname: QUOTEDWORD */ -#line 286 "bindparser.yy" +#line 299 "bindparser.yy" { yyval=yyvsp[0]; } -#line 1430 "bindparser.cc" +#line 1461 "bindparser.cc" + break; + + case 58: /* filename: AWORD */ +#line 305 "bindparser.yy" + { + free(yyvsp[0]); + } +#line 1469 "bindparser.cc" break; -#line 1434 "bindparser.cc" +#line 1473 "bindparser.cc" default: break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/bindparser.yy new/pdns-4.9.1/pdns/bindparser.yy --- old/pdns-4.9.0/pdns/bindparser.yy 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/bindparser.yy 2024-05-28 09:44:43.000000000 +0200 @@ -17,7 +17,7 @@ #define YYSTYPE char * -extern "C" +extern "C" { int yyparse(void); int yylex(void); @@ -35,7 +35,7 @@ extern int linenumber; static void yyerror(const char *str) { - extern char *current_filename; + extern char *current_filename; throw PDNSException("Error in bind configuration '"+string(current_filename)+"' on line "+std::to_string(linenumber)+": "+str); } @@ -44,7 +44,7 @@ BindDomainInfo s_di; void BindParser::parse(const string &fname) -{ +{ yydebug=0; yyin=fopen(fname.c_str(),"r"); yyrestart(yyin); @@ -113,7 +113,7 @@ %% root_commands: - | + | root_commands root_command SEMICOLON ; @@ -126,7 +126,7 @@ ; command: - terms + terms ; global_zone_command: @@ -137,7 +137,7 @@ parent->commit(s_di); s_di.clear(); } - | + | ZONETOK quotedname AWORD zone_block { s_di.name=DNSName($2); @@ -156,19 +156,26 @@ acl_command: - ACLTOK quotedname acl_block | ACLTOK filename acl_block + ACLTOK quotedname acl_block + { + free($2); + } + | ACLTOK filename acl_block ; acl_block: OBRACE acls EBRACE ; - -acls: + +acls: | acl SEMICOLON acls ; acl: AWORD + { + free($1); + } ; options_commands: @@ -189,10 +196,10 @@ } ; -also_notify_command: ALSONOTIFYTOK OBRACE also_notify_list EBRACE +also_notify_command: ALSONOTIFYTOK OBRACE also_notify_list EBRACE ; -also_notify_list: +also_notify_list: | also_notify SEMICOLON also_notify_list ; @@ -208,10 +215,17 @@ terms term ; -term: AWORD | block | quotedname +term: AWORD + { + free($1); + } + | block | quotedname + { + free($1); + } ; -block: - OBRACE commands EBRACE +block: + OBRACE commands EBRACE ; zone_block: @@ -252,7 +266,7 @@ ; primaries: /* empty */ - | + | primaries primary SEMICOLON ; @@ -266,7 +280,6 @@ zone_file_command: FILETOK quotedname { - // printf("Found a filename: '%s'\n",$2); s_di.filename=$2; free($2); } @@ -289,4 +302,7 @@ ; filename: AWORD + { + free($1); + } ; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/dnsbackend.cc new/pdns-4.9.1/pdns/dnsbackend.cc --- old/pdns-4.9.0/pdns/dnsbackend.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/dnsbackend.cc 2024-05-28 09:44:43.000000000 +0200 @@ -85,18 +85,14 @@ return bmc; } -void BackendMakerClass::report(BackendFactory* backendFactory) +void BackendMakerClass::report(std::unique_ptr<BackendFactory>&& backendFactory) { - d_repository[backendFactory->getName()] = backendFactory; + d_repository[backendFactory->getName()] = std::move(backendFactory); } void BackendMakerClass::clear() { d_instances.clear(); - for (auto& repo : d_repository) { - delete repo.second; - repo.second = nullptr; - } d_repository.clear(); } @@ -199,7 +195,7 @@ try { for (const auto& instance : d_instances) { current = instance.first + instance.second; - auto* repo = d_repository[instance.first]; + const auto& repo = d_repository[instance.first]; std::unique_ptr<DNSBackend> made{metadataOnly ? repo->makeMetadataOnly(instance.second) : repo->make(instance.second)}; if (made == nullptr) { throw PDNSException("Unable to launch backend '" + instance.first + "'"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/dnsbackend.hh new/pdns-4.9.1/pdns/dnsbackend.hh --- old/pdns-4.9.0/pdns/dnsbackend.hh 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/dnsbackend.hh 2024-05-28 09:44:43.000000000 +0200 @@ -500,7 +500,7 @@ class BackendMakerClass { public: - void report(BackendFactory* backendFactory); + void report(std::unique_ptr<BackendFactory>&& backendFactory); void launch(const string& instr); vector<std::unique_ptr<DNSBackend>> all(bool metadataOnly = false); static void load(const string& module); @@ -510,7 +510,7 @@ private: static void load_all(); - using d_repository_t = map<string, BackendFactory*>; + using d_repository_t = map<string, std::unique_ptr<BackendFactory>>; d_repository_t d_repository; vector<pair<string, string>> d_instances; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/dnsproxy.cc new/pdns-4.9.1/pdns/dnsproxy.cc --- old/pdns-4.9.0/pdns/dnsproxy.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/dnsproxy.cc 2024-05-28 09:44:43.000000000 +0200 @@ -240,10 +240,11 @@ memcpy(&dHead, &buffer[0], sizeof(dHead)); { auto conntrack = d_conntrack.lock(); -#if BYTE_ORDER == BIG_ENDIAN - // this is needed because spoof ID down below does not respect the native byteorder - d.id = (256 * (uint16_t)buffer[1]) + (uint16_t)buffer[0]; -#endif + if (BYTE_ORDER == BIG_ENDIAN) { + // this is needed because spoof ID down below does not respect the native byteorder + dHead.id = (256 * (uint16_t)buffer[1]) + (uint16_t)buffer[0]; + } + auto iter = conntrack->find(dHead.id ^ d_xor); if (iter == conntrack->end()) { g_log << Logger::Error << "Discarding untracked packet from recursor backend with id " << (dHead.id ^ d_xor) << ". Conntrack table size=" << conntrack->size() << endl; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/dnsrecords.cc new/pdns-4.9.1/pdns/dnsrecords.cc --- old/pdns-4.9.0/pdns/dnsrecords.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/dnsrecords.cc 2024-05-28 09:44:43.000000000 +0200 @@ -167,15 +167,27 @@ ); #ifdef HAVE_LUA_RECORDS + +bool g_luaRecordInsertWhitespace; + string LUARecordContent::getCode() const { // in d_code, series of "part1" "part2" vector<string> parts; stringtok(parts, d_code, "\""); string ret; - for(const auto& p : parts) { - ret += p; - ret.append(1, ' '); + if (g_luaRecordInsertWhitespace) { // default before 5.0 + for(const auto& part : parts) { + ret += part; + ret.append(1, ' '); + } + } + else { // default since 5.0 + for(const auto& part : parts) { + if (part != " ") { + ret += part; + } + } } return ret; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/ixfrdist.cc new/pdns-4.9.1/pdns/ixfrdist.cc --- old/pdns-4.9.0/pdns/ixfrdist.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/ixfrdist.cc 2024-05-28 09:44:43.000000000 +0200 @@ -1642,15 +1642,16 @@ } if (config["gid"].IsDefined()) { + bool gidParsed = false; auto gid = config["gid"].as<string>(); try { configuration.gid = pdns::checked_stoi<gid_t>(gid); + gidParsed = true; } catch (const std::exception& e) { - g_log<<Logger::Error<<"Can not parse gid "<<gid<<endl; - had_error = true; + configuration.gid = 0; } - if (configuration.gid != 0) { + if (!gidParsed) { //NOLINTNEXTLINE(concurrency-mt-unsafe): only one thread at this point const struct group *gr = getgrnam(gid.c_str()); if (gr == nullptr) { @@ -1691,15 +1692,16 @@ } if (config["uid"].IsDefined()) { + bool uidParsed = false; auto uid = config["uid"].as<string>(); try { configuration.uid = pdns::checked_stoi<uid_t>(uid); + uidParsed = true; } catch (const std::exception& e) { - g_log<<Logger::Error<<"Can not parse uid "<<uid<<endl; - had_error = true; + configuration.uid = 0; } - if (configuration.uid != 0) { + if (!uidParsed) { //NOLINTNEXTLINE(concurrency-mt-unsafe): only one thread at this point const struct passwd *pw = getpwnam(uid.c_str()); if (pw == nullptr) { @@ -1707,8 +1709,11 @@ had_error = true; } else { configuration.uid = pw->pw_uid; + uidParsed = true; } //NOLINTNEXTLINE(concurrency-mt-unsafe): only one thread at this point + } + if (uidParsed) { configuration.userInfo = getpwuid(configuration.uid); } } @@ -1794,11 +1799,6 @@ } if (configuration->uid != 0) { - g_log<<Logger::Notice<<"Dropping effective user-id to "<<configuration->uid<<endl; - if (setuid(configuration->uid) < 0) { - g_log<<Logger::Error<<"Could not set user id to "<<configuration->uid<<": "<<stringerror()<<endl; - had_error = true; - } if (configuration->userInfo == nullptr) { if (setgroups(0, nullptr) < 0) { g_log<<Logger::Error<<"Unable to drop supplementary gids: "<<stringerror()<<endl; @@ -1810,6 +1810,12 @@ had_error = true; } } + + g_log<<Logger::Notice<<"Dropping effective user-id to "<<configuration->uid<<endl; + if (setuid(configuration->uid) < 0) { + g_log<<Logger::Error<<"Could not set user id to "<<configuration->uid<<": "<<stringerror()<<endl; + had_error = true; + } } if (had_error) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/named.conf.parsertest new/pdns-4.9.1/pdns/named.conf.parsertest --- old/pdns-4.9.0/pdns/named.conf.parsertest 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/named.conf.parsertest 2024-05-28 09:44:43.000000000 +0200 @@ -1,6 +1,15 @@ # this file is used by ../pdns/test-bindparser_cc.cc # if you change it, please make check! +acl bogusnets { + 0.0.0.0/8; 192.0.2.0/24; 224.0.0.0/3; + 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16; +}; + +acl "not-these-ips" { + !192.168.0/24;!10.0/16;any; +}; + options { directory "./zones/"; recursion no; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/pdnsutil.cc new/pdns-4.9.1/pdns/pdnsutil.cc --- old/pdns-4.9.0/pdns/pdnsutil.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/pdnsutil.cc 2024-05-28 09:44:43.000000000 +0200 @@ -1,3 +1,4 @@ +#include "dnsrecords.hh" #include <boost/smart_ptr/make_shared_array.hpp> #ifdef HAVE_CONFIG_H #include "config.h" @@ -250,7 +251,7 @@ return result; } -static int checkZone(DNSSECKeeper &dk, UeberBackend &B, const DNSName& zone, const vector<DNSResourceRecord>* suppliedrecords=nullptr) +static int checkZone(DNSSECKeeper &dk, UeberBackend &B, const DNSName& zone, const vector<DNSResourceRecord>* suppliedrecords=nullptr) // NOLINTNEXTLINE(readability-function-cognitive-complexity) { uint64_t numerrors=0, numwarnings=0; @@ -377,6 +378,14 @@ if(rr.qtype.getCode() == QType::A || rr.qtype.getCode() == QType::AAAA) { addresses.insert(rr.qname); } + if(rr.qtype.getCode() == QType::LUA) { + shared_ptr<DNSRecordContent> drc(DNSRecordContent::make(rr.qtype.getCode(), QClass::IN, rr.content)); + auto luarec = std::dynamic_pointer_cast<LUARecordContent>(drc); + QType qtype = luarec->d_type; + if(qtype == QType::A || qtype == QType::AAAA) { + addresses.insert(rr.qname); + } + } if(rr.qtype.getCode() == QType::A) { arecords.insert(rr.qname); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/pkcs11signers.cc new/pdns-4.9.1/pdns/pkcs11signers.cc --- old/pdns-4.9.0/pdns/pkcs11signers.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/pkcs11signers.cc 2024-05-28 09:44:43.000000000 +0200 @@ -1030,7 +1030,7 @@ }; ~LoaderStruct() { #ifdef HAVE_P11KIT1_V2 - p11_kit_modules_release(p11_modules); + p11_kit_modules_finalize_and_release(p11_modules); #else p11_kit_finalize_registered(); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/test-distributor_hh.cc new/pdns-4.9.1/pdns/test-distributor_hh.cc --- old/pdns-4.9.0/pdns/test-distributor_hh.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/test-distributor_hh.cc 2024-05-28 09:44:43.000000000 +0200 @@ -67,9 +67,17 @@ { std::unique_ptr<DNSPacket> question(Question&) { - sleep(1); + if (d_shouldSleep) { + /* only sleep once per distributor thread, otherwise + we are sometimes destroyed before picking up the queued + queries, triggering a memory leak reported by Leak Sanitizer */ + std::this_thread::sleep_for(std::chrono::seconds(1)); + d_shouldSleep = false; + } return make_unique<DNSPacket>(true); } +private: + bool d_shouldSleep{true}; }; static std::atomic<int> g_receivedAnswers1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pdns-4.9.0/pdns/test-ueberbackend_cc.cc new/pdns-4.9.1/pdns/test-ueberbackend_cc.cc --- old/pdns-4.9.0/pdns/test-ueberbackend_cc.cc 2024-03-15 10:18:33.000000000 +0100 +++ new/pdns-4.9.1/pdns/test-ueberbackend_cc.cc 2024-05-28 09:44:43.000000000 +0200 @@ -467,7 +467,7 @@ zoneA.d_records->insert(SimpleBackend::SimpleDNSRecord(DNSName("geo.powerdns.com."), QType::A, "192.168.0.42", 60)); SimpleBackend::s_zones[1].insert(zoneA); - BackendMakers().report(new SimpleBackendFactory()); + BackendMakers().report(std::make_unique<SimpleBackendFactory>()); BackendMakers().launch("SimpleBackend:1"); UeberBackend::go(); @@ -580,7 +580,7 @@ zoneB.d_records->insert(SimpleBackend::SimpleDNSRecord(DNSName("geo.powerdns.org."), QType::AAAA, "2001:db8::42", 60)); SimpleBackend::s_zones[2].insert(zoneB); - BackendMakers().report(new SimpleBackendFactory()); + BackendMakers().report(std::make_unique<SimpleBackendFactory>()); BackendMakers().launch("SimpleBackend:1, SimpleBackend:2"); UeberBackend::go(); @@ -725,7 +725,7 @@ zoneB.d_records->insert(SimpleBackend::SimpleDNSRecord(DNSName("geo.powerdns.com."), QType::A, "192.168.0.42", 60)); SimpleBackend::s_zones[2].insert(zoneB); - BackendMakers().report(new SimpleBackendFactory()); + BackendMakers().report(std::make_unique<SimpleBackendFactory>()); BackendMakers().launch("SimpleBackend:1, SimpleBackend:2"); UeberBackend::go(); @@ -852,7 +852,7 @@ zoneB.d_records->insert(SimpleBackend::SimpleDNSRecord(DNSName("geo.powerdns.com."), QType::A, "192.168.0.42", 60)); SimpleBackend::s_zones[2].insert(zoneB); - BackendMakers().report(new SimpleBackendFactory()); + BackendMakers().report(std::make_unique<SimpleBackendFactory>()); BackendMakers().launch("SimpleBackend:1, SimpleBackend:2"); UeberBackend::go(); @@ -976,7 +976,7 @@ zoneB.d_records->insert(SimpleBackend::SimpleDNSRecord(DNSName("ns1.powerdns.com."), QType::A, "192.0.2.1", 3600)); SimpleBackend::s_zones[2].insert(zoneB); - BackendMakers().report(new SimpleBackendFactory()); + BackendMakers().report(std::make_unique<SimpleBackendFactory>()); BackendMakers().launch("SimpleBackend:1, SimpleBackend:2"); UeberBackend::go(); @@ -1049,8 +1049,8 @@ zoneB.d_records->insert(SimpleBackend::SimpleDNSRecord(DNSName("0.1.0.0.2.ip6.arpa."), QType::SOA, "ns.apnic.net. read-txt-record-of-zone-first-dns-admin.apnic.net. 3005126844 7200 1800 604800 3600", 3600)); SimpleBackend::s_zones[2].insert(zoneB); - BackendMakers().report(new SimpleBackendFactory()); - BackendMakers().report(new SimpleBackendBestAuthFactory()); + BackendMakers().report(std::make_unique<SimpleBackendFactory>()); + BackendMakers().report(std::make_unique<SimpleBackendBestAuthFactory>()); BackendMakers().launch("SimpleBackendBestAuth:1, SimpleBackend:2"); UeberBackend::go(); @@ -1112,7 +1112,7 @@ SimpleBackend::s_zones[2].insert(zoneB); SimpleBackend::s_metadata[2].insert(SimpleBackend::SimpleMetaData(DNSName("powerdns.org."), "test-data-b", { "value1", "value2"})); - BackendMakers().report(new SimpleBackendFactory()); + BackendMakers().report(std::make_unique<SimpleBackendFactory>()); BackendMakers().launch("SimpleBackend:1, SimpleBackend:2"); UeberBackend::go();