c-ares 1.18.0 release prep

pull/434/head
bradh352 3 years ago
parent 7586c5f19f
commit 800e4727d1
  1. 4
      CMakeLists.txt
  2. 134
      RELEASE-NOTES
  3. 4
      configure.ac
  4. 6
      include/ares_version.h

@ -8,7 +8,7 @@ INCLUDE (CheckCSourceCompiles)
INCLUDE (CheckStructHasMember) INCLUDE (CheckStructHasMember)
INCLUDE (CheckLibraryExists) INCLUDE (CheckLibraryExists)
PROJECT (c-ares LANGUAGES C VERSION "1.17.2" ) PROJECT (c-ares LANGUAGES C VERSION "1.18.0" )
# Set this version before release # Set this version before release
SET (CARES_VERSION "${PROJECT_VERSION}") SET (CARES_VERSION "${PROJECT_VERSION}")
@ -26,7 +26,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w
# For example, a version of 4:0:2 would generate output such as: # For example, a version of 4:0:2 would generate output such as:
# libname.so -> libname.so.2 # libname.so -> libname.so.2
# libname.so.2 -> libname.so.2.2.0 # libname.so.2 -> libname.so.2.2.0
SET (CARES_LIB_VERSIONINFO "6:3:4") SET (CARES_LIB_VERSIONINFO "7:0:5")
OPTION (CARES_STATIC "Build as a static library" OFF) OPTION (CARES_STATIC "Build as a static library" OFF)

@ -1,83 +1,75 @@
c-ares version 1.17.2 c-ares version 1.18.0
This is a security and bugfix release. It addresses a few security related This is a feature and bugfix release. It addresses a couple of new feature
issues along with various bugfixes mostly related to portability. requests as well as a couple of bug fixes.
Security:
o NodeJS passes NULL for addr and 0 for addrlen to ares_parse_ptr_reply() on
systems where malloc(0) returns NULL. This would cause a crash. [8]
o When building c-ares with CMake, the RANDOM_FILE would not be set and
therefore downgrade to the less secure random number generator [12]
o If ares_getaddrinfo() was terminated by an ares_destroy(), it would cause
a crash [13]
o Crash in sortaddrinfo() if the list size equals 0 due to an unexpected
DNS response [14]
o Expand number of escaped characters in DNS replies as per RFC1035 5.1 to
prevent spoofing [16], [17]
o Perform validation on hostnames to prevent possible XSS due to applications
not performing valiation themselves [18]
Changes: Changes:
o Use non-blocking /dev/urandom for random data to prevent early startup o Add support for URI(Uniform Resource Identifier) records via
performance issues [5] ares_parse_uri_reply() [1]
o z/OS port [6] o Provide ares_nameser.h as a public interface as needed by NodeJS [5]
o ares_malloc(0) is now defined behavior (returns NULL) rather than o Update URLs from c-ares.haxx.se to c-ares.org [9]
system-specific to catch edge cases [7] o During a domain search, treat ARES_ENODATA as ARES_NXDOMAIN so that the
search process will continue to the next domain in the search. [11]
o Turn ares_gethostbyname() into a wrapper for ares_getaddrinfo() as they
followed very similar code paths and ares_gethostbyaddr() has some more
desirable features such as priority sorting and parallel queries for
AF_UNSPEC. [12]
o ares_getaddrinfo() now contains a name element in the address info
structure as the last element. This is not an API or ABI break due to
the structure always being internally allocated and it being the last
element. [12]
o ares_parse_a_reply() and ares_parse_aaaa_reply() were nearly identical, those
now use the same helper functions for parsing rather than having their own
code. [12]
o RFC6761 Section 6.3 says "localhost" lookups need to be special cased to
return loopback addresses, and not forward queries to recursive dns servers.
On Windows this now returns all loopback addresses, on other systems it
returns 127.0.0.1 or ::1 always, and will never forward a request for
"localhost" to outside DNS servers. [13]
o Haiki: port [14]
Bug fixes: Bug fixes:
o Fuzz testing files were not distributed with official archives [1] o add build to .gitignore [2]
o Building tests should not force building of static libraries except on o z/OS minor update, add missing semicolon in ares_init.c [3]
Windows [2] o Fix building when latest ax_code_coverage.m4 is imported [4]
o Windows builds of the tools would fail if built as static due to a missing o Work around autotools 'error: too many loops' and other newer autotools
CARES_STATICLIB definition [3] import related bugs.
o Relative headers must use double quotes to prevent pulling in a system o MinGW cross builds need advapi32 link as lower case [6]
library [4] o Cygwin build fix due to containing both socket.h and winsock2.h [7]
o Fix OpenBSD building by implementing portability updates for including o ares_expand_name should allow underscores (_) as SRV records legitimately use
arpa/nameser.h [9] them [8]
o Fix building out-of-tree for autotools [10] o Allow '/' as a valid character for a returned name for CNAME in-addr.arpa
o Make install on MacOS/iOS with CMake was missing the bundle destination so delegation [10]
libraries weren't actually installed [11] o ares_getaddrinfo() was not honoring HOSTALIASES [12]
o Fix retrieving DNS server configuration on MacOS and iOS if the configuration o ares_getaddrinfo() had some test cases disabled due to a bug in the test
did not include search domains [15] framework itself which has now been resolved [12]
o ares_parse_a_reply and ares_parse_aaa_reply were erroneously using strdup() o Due to Travis-CI becoming unfriendly to open-source, Cirrus-CI has now been
instead of ares_strdup() [19] brought online for automated unit testing.
Thanks go to these friendly people for their efforts and contributions: Thanks go to these friendly people for their efforts and contributions:
Anton Danielsson (@anton-danielsson) Biswapriyo Nath (@Biswa96)
Brad House (@bradh352) Brad House (@bradh352)
Daniel Bevenius (@danbev)
Daniel Stenberg (@bagder) Daniel Stenberg (@bagder)
Dhrumil Rana (@dhrumilrana) Dhrumil Rana (@dhrumilrana)
František Dvořák (@valtri) Felix Yan (@felixonmars)
@halx99 Jérôme Duval (@korli)
Jay Freeman (@saurik) Martin Holeš (@martin-256)
Jean-pierre Cartal (@jeanpierrecartal) Sinan Kaya
Michael Kourlas (9 contributors)
Philipp Jeitner
@vburdo
(11 contributors)
References to bug reports and discussions on issues: References to bug reports and discussions on issues:
[1] = https://github.com/c-ares/c-ares/issues/379 [1] = https://github.com/c-ares/c-ares/pull/411
[2] = https://github.com/c-ares/c-ares/issues/380 [2] = https://github.com/c-ares/c-ares/pull/410
[3] = https://github.com/c-ares/c-ares/issues/384 [3] = https://github.com/c-ares/c-ares/pull/414
[4] = https://github.com/c-ares/c-ares/pull/386 [4] = https://github.com/c-ares/c-ares/pull/418
[5] = https://github.com/c-ares/c-ares/pull/391 [5] = https://github.com/c-ares/c-ares/pull/417
[6] = https://github.com/c-ares/c-ares/pull/390 [6] = https://github.com/c-ares/c-ares/pull/420
[7] = https://github.com/c-ares/c-ares/commit/485fb66 [7] = https://github.com/c-ares/c-ares/pull/422
[8] = https://github.com/c-ares/c-ares/issues/392 [8] = https://github.com/c-ares/c-ares/issues/424
[9] = https://github.com/c-ares/c-ares/issues/388 [9] = https://github.com/c-ares/c-ares/issues/423
[10] = https://github.com/c-ares/c-ares/pull/394 [10] = https://github.com/c-ares/c-ares/issues/427
[11] = https://github.com/c-ares/c-ares/pull/395 [11] = https://github.com/c-ares/c-ares/issues/426
[12] = https://github.com/c-ares/c-ares/pull/397 [12] = https://github.com/c-ares/c-ares/pull/428
[13] = https://github.com/c-ares/c-ares/commit/df94703 [13] = https://github.com/c-ares/c-ares/pull/430
[14] = https://github.com/c-ares/c-ares/pull/400 [14] = https://github.com/c-ares/c-ares/pull/431
[15] = https://github.com/c-ares/c-ares/pull/401
[16] = https://github.com/c-ares/c-ares/commit/362f91d
[17] = https://github.com/c-ares/c-ares/commit/44c009b
[18] = https://github.com/c-ares/c-ares/commit/c9b6c60
[19] = https://github.com/c-ares/c-ares/pull/408

@ -1,9 +1,9 @@
AC_PREREQ([2.60]) AC_PREREQ([2.60])
AC_INIT([c-ares], [1.17.2], AC_INIT([c-ares], [1.18.0],
[c-ares mailing list: http://lists.haxx.se/listinfo/c-ares]) [c-ares mailing list: http://lists.haxx.se/listinfo/c-ares])
CARES_VERSION_INFO="6:3:4" CARES_VERSION_INFO="7:0:5"
dnl This flag accepts an argument of the form current[:revision[:age]]. So, dnl This flag accepts an argument of the form current[:revision[:age]]. So,
dnl passing -version-info 3:12:1 sets current to 3, revision to 12, and age to dnl passing -version-info 3:12:1 sets current to 3, revision to 12, and age to
dnl 1. dnl 1.

@ -6,12 +6,12 @@
#define ARES_COPYRIGHT "2004 - 2021 Daniel Stenberg, <daniel@haxx.se>." #define ARES_COPYRIGHT "2004 - 2021 Daniel Stenberg, <daniel@haxx.se>."
#define ARES_VERSION_MAJOR 1 #define ARES_VERSION_MAJOR 1
#define ARES_VERSION_MINOR 17 #define ARES_VERSION_MINOR 18
#define ARES_VERSION_PATCH 2 #define ARES_VERSION_PATCH 0
#define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\ #define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\
(ARES_VERSION_MINOR<<8)|\ (ARES_VERSION_MINOR<<8)|\
(ARES_VERSION_PATCH)) (ARES_VERSION_PATCH))
#define ARES_VERSION_STR "1.17.2" #define ARES_VERSION_STR "1.18.0"
#if (ARES_VERSION >= 0x010700) #if (ARES_VERSION >= 0x010700)
# define CARES_HAVE_ARES_LIBRARY_INIT 1 # define CARES_HAVE_ARES_LIBRARY_INIT 1

Loading…
Cancel
Save