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 (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 (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:
# libname.so -> libname.so.2
# 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)

@ -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
issues along with various bugfixes mostly related to portability.
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]
This is a feature and bugfix release. It addresses a couple of new feature
requests as well as a couple of bug fixes.
Changes:
o Use non-blocking /dev/urandom for random data to prevent early startup
performance issues [5]
o z/OS port [6]
o ares_malloc(0) is now defined behavior (returns NULL) rather than
system-specific to catch edge cases [7]
o Add support for URI(Uniform Resource Identifier) records via
ares_parse_uri_reply() [1]
o Provide ares_nameser.h as a public interface as needed by NodeJS [5]
o Update URLs from c-ares.haxx.se to c-ares.org [9]
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:
o Fuzz testing files were not distributed with official archives [1]
o Building tests should not force building of static libraries except on
Windows [2]
o Windows builds of the tools would fail if built as static due to a missing
CARES_STATICLIB definition [3]
o Relative headers must use double quotes to prevent pulling in a system
library [4]
o Fix OpenBSD building by implementing portability updates for including
arpa/nameser.h [9]
o Fix building out-of-tree for autotools [10]
o Make install on MacOS/iOS with CMake was missing the bundle destination so
libraries weren't actually installed [11]
o Fix retrieving DNS server configuration on MacOS and iOS if the configuration
did not include search domains [15]
o ares_parse_a_reply and ares_parse_aaa_reply were erroneously using strdup()
instead of ares_strdup() [19]
o add build to .gitignore [2]
o z/OS minor update, add missing semicolon in ares_init.c [3]
o Fix building when latest ax_code_coverage.m4 is imported [4]
o Work around autotools 'error: too many loops' and other newer autotools
import related bugs.
o MinGW cross builds need advapi32 link as lower case [6]
o Cygwin build fix due to containing both socket.h and winsock2.h [7]
o ares_expand_name should allow underscores (_) as SRV records legitimately use
them [8]
o Allow '/' as a valid character for a returned name for CNAME in-addr.arpa
delegation [10]
o ares_getaddrinfo() was not honoring HOSTALIASES [12]
o ares_getaddrinfo() had some test cases disabled due to a bug in the test
framework itself which has now been resolved [12]
o Due to Travis-CI becoming unfriendly to open-source, Cirrus-CI has now been
brought online for automated unit testing.
Thanks go to these friendly people for their efforts and contributions:
Anton Danielsson (@anton-danielsson)
Biswapriyo Nath (@Biswa96)
Brad House (@bradh352)
Daniel Bevenius (@danbev)
Daniel Stenberg (@bagder)
Dhrumil Rana (@dhrumilrana)
František Dvořák (@valtri)
@halx99
Jay Freeman (@saurik)
Jean-pierre Cartal (@jeanpierrecartal)
Michael Kourlas
Philipp Jeitner
@vburdo
(11 contributors)
Felix Yan (@felixonmars)
Jérôme Duval (@korli)
Martin Holeš (@martin-256)
Sinan Kaya
(9 contributors)
References to bug reports and discussions on issues:
[1] = https://github.com/c-ares/c-ares/issues/379
[2] = https://github.com/c-ares/c-ares/issues/380
[3] = https://github.com/c-ares/c-ares/issues/384
[4] = https://github.com/c-ares/c-ares/pull/386
[5] = https://github.com/c-ares/c-ares/pull/391
[6] = https://github.com/c-ares/c-ares/pull/390
[7] = https://github.com/c-ares/c-ares/commit/485fb66
[8] = https://github.com/c-ares/c-ares/issues/392
[9] = https://github.com/c-ares/c-ares/issues/388
[10] = https://github.com/c-ares/c-ares/pull/394
[11] = https://github.com/c-ares/c-ares/pull/395
[12] = https://github.com/c-ares/c-ares/pull/397
[13] = https://github.com/c-ares/c-ares/commit/df94703
[14] = https://github.com/c-ares/c-ares/pull/400
[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] = https://github.com/c-ares/c-ares/pull/411
[2] = https://github.com/c-ares/c-ares/pull/410
[3] = https://github.com/c-ares/c-ares/pull/414
[4] = https://github.com/c-ares/c-ares/pull/418
[5] = https://github.com/c-ares/c-ares/pull/417
[6] = https://github.com/c-ares/c-ares/pull/420
[7] = https://github.com/c-ares/c-ares/pull/422
[8] = https://github.com/c-ares/c-ares/issues/424
[9] = https://github.com/c-ares/c-ares/issues/423
[10] = https://github.com/c-ares/c-ares/issues/427
[11] = https://github.com/c-ares/c-ares/issues/426
[12] = https://github.com/c-ares/c-ares/pull/428
[13] = https://github.com/c-ares/c-ares/pull/430
[14] = https://github.com/c-ares/c-ares/pull/431

@ -1,9 +1,9 @@
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])
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 passing -version-info 3:12:1 sets current to 3, revision to 12, and age to
dnl 1.

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

Loading…
Cancel
Save