c-ares version 1.17.2 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] 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] 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] Thanks go to these friendly people for their efforts and contributions: Anton Danielsson (@anton-danielsson) Brad House (@bradh352) 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) 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