From a3fca4ba67dbd205be1fecbd4bbffe21cf778400 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 8 Oct 2021 10:43:47 +0200 Subject: Merging upstream version 2.7.1. Signed-off-by: Daniel Baumann --- CHANGES | 13 +++++++++++++ configure | 20 ++++++++++---------- configure.ac | 2 +- src/dns.c | 7 ++++--- src/test/Makefile.am | 6 +++--- src/test/Makefile.in | 13 ++++++++++--- src/test/datafile6 | 26 ++++++++++++++++++++++++++ src/test/test6.sh | 7 +++++++ 8 files changed, 74 insertions(+), 20 deletions(-) create mode 100644 src/test/datafile6 create mode 100755 src/test/test6.sh diff --git a/CHANGES b/CHANGES index dc6cbcd..99ef14c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,16 @@ +2021-09-17 Jerry Lundström + + Release 2.7.1 + + This release fixes issues with constructing wire-format DNS when the + domain names includes escaped characters such as `\123` or `\.`. + + Other changes: + - Bump Debian package compat level to 10 + + 4873f02 DNS encoding + c4eccc0 debhelper + 2021-08-09 Jerry Lundström Release 2.7.0 diff --git a/configure b/configure index 2f1bd71..aef8378 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for dnsperf 2.7.0. +# Generated by GNU Autoconf 2.69 for dnsperf 2.7.1. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dnsperf' PACKAGE_TARNAME='dnsperf' -PACKAGE_VERSION='2.7.0' -PACKAGE_STRING='dnsperf 2.7.0' +PACKAGE_VERSION='2.7.1' +PACKAGE_STRING='dnsperf 2.7.1' PACKAGE_BUGREPORT='admin@dns-oarc.net' PACKAGE_URL='https://github.com/DNS-OARC/dnsperf/issues' @@ -1360,7 +1360,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dnsperf 2.7.0 to adapt to many kinds of systems. +\`configure' configures dnsperf 2.7.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1431,7 +1431,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dnsperf 2.7.0:";; + short | recursive ) echo "Configuration of dnsperf 2.7.1:";; esac cat <<\_ACEOF @@ -1570,7 +1570,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dnsperf configure 2.7.0 +dnsperf configure 2.7.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1939,7 +1939,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dnsperf $as_me 2.7.0, which was +It was created by dnsperf $as_me 2.7.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2802,7 +2802,7 @@ fi # Define the identity of the package. PACKAGE='dnsperf' - VERSION='2.7.0' + VERSION='2.7.1' cat >>confdefs.h <<_ACEOF @@ -14410,7 +14410,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dnsperf $as_me 2.7.0, which was +This file was extended by dnsperf $as_me 2.7.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14477,7 +14477,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dnsperf config.status 2.7.0 +dnsperf config.status 2.7.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index c8f6029..a4e044b 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ # limitations under the License. AC_PREREQ(2.64) -AC_INIT([dnsperf], [2.7.0], [admin@dns-oarc.net], [dnsperf], [https://github.com/DNS-OARC/dnsperf/issues]) +AC_INIT([dnsperf], [2.7.1], [admin@dns-oarc.net], [dnsperf], [https://github.com/DNS-OARC/dnsperf/issues]) AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) AC_CONFIG_SRCDIR([src/dnsperf.c]) AC_CONFIG_HEADER([src/config.h]) diff --git a/src/dns.c b/src/dns.c index cf089a8..8c4999f 100644 --- a/src/dns.c +++ b/src/dns.c @@ -111,12 +111,11 @@ perf_result_t perf_dname_fromstring(const char* str, size_t len, perf_buffer_t* for (at = 0; at < len; at++) { if (*(str + at) == '\\') { at++; - if (at >= len) - return PERF_R_FAILURE; if (*(str + at) >= '0' && *(str + at) <= '9') { char b[4]; long v; - memcpy(b, str, 3); + memcpy(b, str + at, 3); + at += 2; b[3] = 0; v = strtol(b, 0, 7); if (v < 0 || v > 255) @@ -124,6 +123,8 @@ perf_result_t perf_dname_fromstring(const char* str, size_t len, perf_buffer_t* perf_buffer_putuint8(target, (uint8_t)v); continue; } + } else if (*(str + at) == '.') { + break; } perf_buffer_putmem(target, str + at, 1); } diff --git a/src/test/Makefile.am b/src/test/Makefile.am index 05439fa..3c5e0d2 100644 --- a/src/test/Makefile.am +++ b/src/test/Makefile.am @@ -1,9 +1,9 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefile.in CLEANFILES = test*.log test*.trs \ - test2.out test4.out test4err.out key.pem cert.pem + test2.out test4.out test4err.out key.pem cert.pem test6.out -TESTS = test1.sh test2.sh test3.sh test4.sh test5.sh +TESTS = test1.sh test2.sh test3.sh test4.sh test5.sh test6.sh EXTRA_DIST = $(TESTS) \ - datafile datafile2 updatefile datafile3 datafile4 datafile5 + datafile datafile2 updatefile datafile3 datafile4 datafile5 datafile6 diff --git a/src/test/Makefile.in b/src/test/Makefile.in index fa6167e..78b3759 100644 --- a/src/test/Makefile.in +++ b/src/test/Makefile.in @@ -465,11 +465,11 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = $(srcdir)/Makefile.in CLEANFILES = test*.log test*.trs \ - test2.out test4.out test4err.out key.pem cert.pem + test2.out test4.out test4err.out key.pem cert.pem test6.out -TESTS = test1.sh test2.sh test3.sh test4.sh test5.sh +TESTS = test1.sh test2.sh test3.sh test4.sh test5.sh test6.sh EXTRA_DIST = $(TESTS) \ - datafile datafile2 updatefile datafile3 datafile4 datafile5 + datafile datafile2 updatefile datafile3 datafile4 datafile5 datafile6 all: all-am @@ -694,6 +694,13 @@ test5.sh.log: test5.sh --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +test6.sh.log: test6.sh + @p='test6.sh'; \ + b='test6.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ diff --git a/src/test/datafile6 b/src/test/datafile6 new file mode 100644 index 0000000..8ed7df6 --- /dev/null +++ b/src/test/datafile6 @@ -0,0 +1,26 @@ +\" A +\001 A +\". A +a\". A +\"a. A +a\"a. A +a\"a\". A +\!\"a\". A +\001. A +a\001. A +\001a. A +a\001a. A +a\001\001\001a. A +a\001a\001a\001. A +\".\". A +a\".a\". A +\"a.\"a. A +a\"a.a\"a. A +a\"a\".a\"a\". A +\!\"a\".\!\"a\". A +\001.\001. A +a\001.a\001. A +\001a.\001a. A +a\001a.a\001a. A +a\001\001\001a.a\001\001\001a. A +a\001a\001a\001.a\001a\001a\001. A diff --git a/src/test/test6.sh b/src/test/test6.sh new file mode 100755 index 0000000..4eea79e --- /dev/null +++ b/src/test/test6.sh @@ -0,0 +1,7 @@ +#!/bin/sh -xe + +test "$TEST_DNSPERF_WITH_NETWORK" = "1" || exit 0 + +../dnsperf -vvv -d "$srcdir/datafile6" -s 1.1.1.1 >test6.out + +grep "NXDOMAIN 26" test6.out -- cgit v1.2.3