Commit Graph

2298 Commits

Author SHA1 Message Date
Willem Toorop af46e20721 Fix reporting authentication failure 2020-03-02 15:51:46 +00:00
Willem Toorop e17ed3938c Fix: mem leak with gnutls 2020-03-02 15:12:18 +00:00
Willem Toorop 16c20fe04d
Merge pull request #462 from doublez13/develop
Fix uninitialized value in tls_create_object
2020-03-02 15:20:51 +01:00
Willem Toorop 3b5d1a9353 Stub only links with GNUTLS
And valgrind check includes DoT session
2020-03-02 15:12:33 +01:00
Willem Toorop f3a38e9a40 Sync tools shared with unbound 2020-03-02 15:11:58 +01:00
Zane Zakraisek b804b8effb Fix uninitialized value in tls_create_object
On the first call to tls_create_object (stub.c), tls_fallback_ok is read
before being initialized. This patch initializes tls_fallback_ok to 0 in
upsteam_init (context.c)

Valgrind complains about the uninitialized value:
==14774== Conditional jump or move depends on uninitialised value(s)
==14774==    at 0x1528C3: tls_create_object (stub.c:900)
==14774==    by 0x1556AD: upstream_connect (stub.c:2065)
==14774==    by 0x15582E: upstream_find_for_transport (stub.c:2109)
==14774==    by 0x1558B7: upstream_find_for_netreq (stub.c:2130)
==14774==    by 0x156027: _getdns_submit_stub_request (stub.c:2296)
==14774==    by 0x1421C8: _getdns_submit_netreq (general.c:478)
==14774==    by 0x14261D: getdns_general_ns (general.c:636)
==14774==    by 0x142905: _getdns_general_loop (general.c:731)
==14774==    by 0x1432FB: getdns_general (general.c:888)
==14774==    by 0x118B94: incoming_request_handler (stubby.c:692)
==14774==    by 0x14F46B: udp_read_cb (server.c:762)
==14774==    by 0x15C86B: poll_read_cb (poll_eventloop.c:295)
==14774==  Uninitialised value was created by a heap allocation
==14774==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==14774==    by 0x123CCF: upstreams_create (context.c:581)
==14774==    by 0x128B24: getdns_context_set_upstream_recursive_servers (context.c:2760)
==14774==    by 0x12DBFE: _getdns_context_config_setting (context.c:4646)
==14774==    by 0x12FF47: getdns_context_config (context.c:4769)
==14774==    by 0x1178C2: parse_config (stubby.c:297)
==14774==    by 0x117B24: parse_config_file (stubby.c:343)
==14774==    by 0x11919F: main (stubby.c:833)
2020-03-01 14:13:27 -07:00
Willem Toorop fe30672afa shorten code with string conversion functions 2020-02-28 20:33:22 +01:00
Jim Hague ab49db8aa5 Tighten Nettle version checking, and fix build issue with Nettle >= 3.4.
Nettle 3.4 introduced accessor functions for obtaining nettle_secp_256r1 and nettle_secp_384r1. Use them if present.

Fixes #458
2020-02-25 13:30:25 +00:00
Willem Toorop d7099f6e30 Deal with DoT servers that take long to connect to
(because they might be under attack)
2020-02-21 14:17:00 +01:00
Willem Toorop e2c6241964 Issue #175: Include query in call_reporting dict
Thanks Tom Pusateri
2020-02-20 17:52:27 +01:00
Willem Toorop 56ca583fa6 Issue #407 run only offline tests 2020-02-14 16:49:45 +01:00
Willem Toorop ed36240f19 Fix test 2020-02-13 17:26:18 +01:00
Willem Toorop 6cb15939ba Issue #430: Record and guard UDP max payload size with servers. 2020-02-13 17:02:24 +01:00
Willem Toorop 971c43c659 Fix #432 answer_ipv4_address and answer_ipv6_address
in reply and reponse dicts.
I realise we also do not have intermediate_aliases yet...
2020-02-13 15:33:13 +01:00
Willem Toorop f33a4b2d4e More worldly changes that influenced unit testing 2020-02-12 13:23:51 +01:00
Willem Toorop 770c0a1282 Fix unit tests (for changed world)
- Google started to respond NOTIMP on unknown RR types!
- willem.getdnsapi.net has been removed
2020-02-12 12:28:50 +01:00
Willem Toorop 8b5c57bfcb Also clear returned netreq when result came from LOCALNAMES namespace 2019-12-20 12:42:52 +01:00
Willem Toorop 24824bb413 Not string.h but strings.h! 2019-12-20 11:23:45 +00:00
Willem Toorop 4fdf3a8b2a Stuff that came out of valgrind on FreeBSD 12 2019-12-20 11:09:24 +00:00
Willem Toorop 8da6fdb442 string.h not available on Windows 2019-12-20 11:08:32 +00:00
Willem Toorop 33633ea239 One more scan with extra argument 2019-12-20 10:46:59 +00:00
Willem Toorop 3345bb615d One more gldns_wire2str_rr_scan fix 2019-12-20 10:29:54 +00:00
Willem Toorop 8cda9816e4 Merge branch 'release/1.6.0-beta.1' of github.com:getdnsapi/getdns into release/1.6.0-beta.1 2019-12-20 09:56:08 +00:00
Willem Toorop 3ad84d0a51 Updated gldns 2019-12-20 10:55:47 +01:00
Willem Toorop 651e5f7c3f Work around FreeBSD12 FAST OPEN issue
Before (FreeBSD 11), poll could be used to wait for the socket to
be writeable immediately. Now (since FreeBSD 12) this results in
infinite wait, so we just have to write immediately to work around
this.
2019-12-19 15:00:53 +00:00
Willem Toorop b446bfdf11 Enable debugging symbols for better valgrind output 2019-12-19 14:56:12 +00:00
Willem Toorop 61dffd0e35 Fail eventloop test on errors 2019-12-19 12:45:47 +00:00
Willem Toorop 8b2e8c2be3 Memory leak via libunbound in FreeBSD11.3 2019-12-19 11:29:40 +00:00
Willem Toorop a78b963aa9 Make check timeout larger than getdns timeout
- when timeout should be expected
2019-12-19 10:44:22 +00:00
Jim Hague 489022dcb9 Some tests that use valgrind aren't flagged as such. Fix this. 2019-12-18 11:14:12 +00:00
Jim Hague 0226096974 Suppress memory leak in libunbound to get test 125 passing on Bionic. 2019-12-18 10:23:45 +00:00
Willem Toorop 52cb444065 Update all submodules with .gitattributes 2019-12-16 16:27:28 +01:00
Willem Toorop 7d2e255ead git-archive-all.sh based makedist file 2019-12-16 15:36:53 +01:00
Willem Toorop 60307d88fd
Merge pull request #447 from getdnsapi/feature/cmake
Feature/cmake
2019-12-16 12:33:12 +01:00
Willem Toorop 3e373ab2af Now with actual fix for multiple localhost addresses 2019-12-16 12:05:29 +01:00
Willem Toorop aafdba690d Server capabilities test, listen on single localhost IPv4 address 2019-12-16 11:54:00 +01:00
Willem Toorop 0fbe0dccc3 Debugging server capability testing 2019-12-16 11:47:40 +01:00
Willem Toorop f1ea127e7a NLnet Labs reversed space takes long to lookup... 2019-12-16 11:04:49 +01:00
Willem Toorop e2813299ee Target everything does not exist with me ...
.. but did exist in travis???
2019-12-13 16:19:29 +01:00
Willem Toorop 39e2c8a33e replace '//' with #ifdef 0 / #endif
because my compiler complains about it for some reason
2019-12-13 11:34:14 +01:00
Willem Toorop 17784bd3f5 Try to fix yxml 2019-12-13 11:29:34 +01:00
Willem Toorop e28ee2b0e0 New commits in yxml 2019-12-10 15:21:51 +01:00
Sara Dickinson d92a91e771 Fix up unit tests for all the event loops.
Various housekeeping
2019-11-29 10:50:49 +00:00
Sara Dickinson 33774228a3 Missed one SOA that is not returned 2019-11-28 16:42:42 +00:00
Sara Dickinson 0fc75dfbaf Work around issue in cmake (after 3.5 but fixed in 3.12) where object libraries could not be used with target_link_library().
Tweak libcheck/windows logic.

Hacks to make tests pass with strange bionic system resolver behaviour
Add to README that xenial doesn’t have libunbound-dev 1.5.9 packaged
2019-11-28 16:22:45 +00:00
Sara Dickinson 26d678b344 More update to README
v. minor updates to tests to clean up output
2019-11-18 20:41:28 +00:00
Sara Dickinson 38f59b7bea Remove libidn support
More updates to README
2019-11-18 14:05:50 +00:00
Sara Dickinson fa72271221 Add simple test to run stubby 2019-11-15 16:35:56 +00:00
Sara Dickinson 2925c7e80b Add verbose on failure output to unit tests 2019-11-15 15:52:39 +00:00
Sara Dickinson 323e6a6ba6 Update submodules and fix issue with loading local hosts 2019-11-15 14:29:33 +00:00
Sara Dickinson 499555b8a5 More fixes for remaining tests.. 2019-11-14 17:58:11 +00:00
Sara Dickinson d59380fca0 Start work on remaining tests 2019-11-14 14:40:24 +00:00
Sara Dickinson 1cca550799 Fix lib name on linux 2019-11-14 14:05:47 +00:00
Sara Dickinson ffbc49cc2d Get all of the tests run by ‘run-all.sh’ working apart from those that require valgrind…….
update stubby commit and ymlx commit to remove build warnings
2019-11-14 11:36:18 +00:00
Rosen Penev 3f6203bf0f
platform: Prefer poll.h to sys/poll.h
sys/poll.h seems to be some GNU extension. musl warns about this:

warning redirecting incorrect #include <sys/poll.h> to <poll.h>

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-03 14:30:34 -08:00
Jim Hague e00a79a240 Remove autoconf build and update to autoconf-less Stubby. 2019-11-01 12:27:10 +00:00
Jim Hague 1cac86424e Fix build problem with ENABLE_DEBUG_STUB when not using ENABLE_DEBUG_ALL. 2019-11-01 10:44:55 +00:00
Jim Hague 0e432cc7c2 Add option to build Doxygen.
This requires a change to the Doxyfile. I can't see a way to avoid this.
2019-10-31 13:41:04 +00:00
Jim Hague ea09baf376 Fix Windows build failure when libunbound is present. 2019-10-29 17:42:21 +00:00
Jim Hague 5bab6921bd Get libevent.c building under Windows. 2019-10-29 15:59:15 +00:00
Jim Hague 87177cc103 Add a Windows implementation of getdns_context_set_resolvconf().
Have it return GETDNS_RETURN_NOT_IMPLEMENTED. This function is listed in the shared library exports, and it's part of the official API, so we need it.
2019-10-18 19:04:17 +01:00
Jim Hague cd62f2b716 Don't include OpenSSL headers in config.h.
Add an include of stdlib.h to various files that were relying on config.h to drag it in. I don't think config.h should be pulling in standard C headers.
2019-10-15 18:37:10 +01:00
Jim Hague a2d09d2be5 Fix type warning on Windows. 2019-10-15 16:56:34 +01:00
Jim Hague 73e8e4653d Update to latest fix of ssl_dane.c for Windows. 2019-10-15 16:55:16 +01:00
Jim Hague dd70108558 Windows does not have mkstemp(). Add compat version.
The compat version is Windows-specific.
2019-10-15 16:54:13 +01:00
Jim Hague 323d76d7ae Add the rest of the compat functions to the build, if required.
Remove any preprocess guards from the sources, and only include them in the build if required. Add some additional required Windows libraries.
2019-10-15 16:53:03 +01:00
Jim Hague 5db0d03b13 Enable building on Windows with Visual Studio.
The change mostly consists of removing or replacing non-standard (usually POSIX) header includes.

Guards for replacements for inet_ntop(), inet_pton() and gettimeofday() are updated; the first two are macros on Windows, so the guards are changed to HAVE_DECL. gettimeofday() is present on MinGW builds but not Visual Studio, so that has a function check.
2019-10-15 10:09:17 +01:00
Vladislav Grishenko 416c55734b Optimize local addresses enumeration with old uClibc
uClibc 0.9.30rc1 - 0.9.32rc5 has bug - getaddrinfo() does not accept numeric
service without any hints. As the related side effect, hint struct with
ai_socktype == 0 (unspec) and ai_protocol == 0 (unpsec) gives the same
EAI_SERVICE error instead of same address with different proto enumebration.
For more details please refer https://bugs.busybox.net/show_bug.cgi?id=3841 and
https://git.uclibc.org/uClibc/commit/?id=bc3be18145e4d57e7268506f123c0f0f373a15e2

Since 0.9.3x uClibc versions are still not somewhat unique in embedded (issue
https://github.com/getdnsapi/stubby/issues/124 as example) and non-zero
ai_socktype allows to avoid address dups for each supported UDP/TCP/etc proto,
seems worth to have it specified, as a minor memory allocation optimization at
least.

SOCK_DGRAM vs SOCK_STREAM choice doesn't really matter here, both are actually
used for DNS and both are non-zero, no difference is expected on *nix. So
SOCK_DGRAM selected due original comment only.
2019-04-25 03:31:56 +05:00
Vladislav Grishenko 4f4ed98112 Fix build error with gnu99 compilers
Typedefs sha256_pin_t & getdns_log_config multiple declaration in context.h,
tls.h and tls_internal.h causes build error with some gnu99 compilers, even
if the redefinition is identical.
One possible way is to protect each occurence with ifdefs, but it seems too
brute, other one is to keep typedef in context.h only and use struct types
in recently added tls* scope.

Error example:
../libtool --quiet --tag=CC --mode=compile arm-brcm-linux-uclibcgnueabi-gcc
-std=gnu99 -I. -I. -I./util/auxiliary -I./tls -I./openssl -I./../stubby/src
-Wall -Wextra -D_BSD_SOURCE -D_DEFAULT_SOURCE ... -c ./convert.c -o convert.lo
In file included from ./context.h:53:0,
                 from ./util-internal.h:42,
                 from ./convert.c:50:
./tls.h:45:27: error: redefinition of typedef 'sha256_pin_t'
./openssl/tls-internal.h:57:27: note: previous declaration of 'sha256_pin_t' was here
In file included from ./util-internal.h:42:0,
                 from ./convert.c:50:
./context.h:133:3: error: redefinition of typedef 'sha256_pin_t'
./tls.h:45:27: note: previous declaration of 'sha256_pin_t' was here
./context.h:267:3: error: redefinition of typedef 'getdns_log_config'
./openssl/tls-internal.h:58:34: note: previous declaration of 'getdns_log_config' was here
2019-04-12 01:40:51 +05:00
Willem Toorop b22768709a Runtime fallback and FreeBSD compatible TFO 2019-04-03 12:24:09 +02:00
Willem Toorop b6e290f42a Fix compiling for debugging 2019-04-03 11:51:35 +02:00
Maciej S. Szmigiero 0a1883047d
Don't transmit an extra NULL byte in the anchor fetch HTTP request
When calculating HTTP request buffer size tas_connect() unnecessarily adds
an extra octet for the terminating NULL byte.
The terminating NULL was already accounted for by sizeof(fmt), however,
since sizeof("123") = 4.

The extra NULL byte at the end of the anchor fetch HTTP request resulted
in an extra "501 Not implemented" HTTP response from the trust anchor
server.
2019-03-24 00:51:20 +01:00
Maciej S. Szmigiero 99e32f1e46
Increase anchor fetch timeout in tas_doc_read()
tas_doc_read() uses a very short 50 msec network read timeout which makes
fetching trust anchors pretty much impossible on high-latency connections
like 3G.

Use a 2 second read timeout, just like the other tas_read_cb() callback
setter does.
2019-03-24 00:50:49 +01:00
Willem Toorop 342b1090f8 Declarations are always defined 2019-03-15 17:22:31 +01:00
Willem Toorop 754d65eb6d Correct dependencies 2019-03-15 16:58:10 +01:00
Willem Toorop 324370c537 GnuTLS with Zero configuration DNSSEC 2019-03-15 16:50:10 +01:00
Willem Toorop 7438de712a Issue #422: Update server & client TFO
Seems to work for TLS now too.
At least on Linux.
Thanks Craig Andrews
2019-03-15 12:13:38 +01:00
Willem Toorop 99d15b999c Issue #423: Fix insecure delegation detection while scheduling 2019-03-13 14:21:06 +01:00
Jim Hague 968e914e94 Avoid build errors if $sysconfdir or $runstatedir contain a space.
Building on Windows was failing if sysconfdir was, e.g. C:\Program Files.
2019-02-21 14:37:25 +00:00
Willem Toorop acc9b1cbd5 Typo and unused parameter warning 2019-02-15 13:46:28 +01:00
Willem Toorop 30367dada2 space needed for unit test to succeed 2019-02-15 13:43:28 +01:00
Willem Toorop 034b775e5c DOA & AMTRELAY RR types implementation 2019-02-15 13:36:39 +01:00
Willem Toorop 71b773ab2f '"' needs to be escaped too in json 2019-02-15 10:44:49 +01:00
Willem Toorop c3d0afd47d Issue #419: Escape backslashes when printing json
Thanks boB Rudis
2019-02-15 10:29:39 +01:00
Willem Toorop 97ac5d3ddc Merge branch 'develop' of github.com:getdnsapi/getdns into develop 2019-02-04 15:46:46 +01:00
Willem Toorop 0fef131e9b bugfix #418 duplicate ,'s in Windows build 2019-02-04 15:46:10 +01:00
Havard Eidnes c68f5a7a8d Fix various build warnings uncovered on NetBSD w/pkgsrc.
The isxxxx() and toxxxx() functions have a limited well-defined
input value range, namely that of "unsigned char" plus EOF.  Cast
args accordingly.

Bring strncasecmp() into scope by including <strings.h>.
2019-01-28 11:24:10 +01:00
Willem Toorop 7c1b43b420 Fix sole pinset validation with ssl_dane library 2019-01-23 14:33:35 +00:00
Willem Toorop cad7eb2461 Probably the strlcpy 2019-01-23 14:06:04 +01:00
Willem Toorop f72fe60035 Cannot reuse qname (via name) after read_line_cb..
.. returns.
2019-01-23 13:55:29 +01:00
Willem Toorop e657024531 Run all unit tests again 2019-01-23 12:50:44 +01:00
Willem Toorop 35f2ce37c0 Restore original serve delays 2019-01-23 12:49:22 +01:00
Willem Toorop c4bd91b196 Merge remote-tracking branch 'jim/feature/abstract-tls' into devel/abstract-tls 2019-01-23 12:46:07 +01:00
Willem Toorop d71dccaf2c - Nested getdns_context_runt() prevention
- Fix address query with qname and missing qtype for -I and -F too
- disable tiny delay again
2019-01-23 12:43:20 +01:00
Jim Hague cdc0d43315 Correct auth state thinko. Spotter credit to Willem. 2019-01-23 11:34:02 +00:00
Willem Toorop 8980f5f5ee Fix nested scheduling with getdns_query -F and -I
+ add 1 millisecond delay between batched queries, just because...
2019-01-23 11:41:00 +01:00
Willem Toorop 0af9a629f4 Does smaller delay make a difference? 2019-01-23 10:50:57 +01:00
Willem Toorop ac379787a2 Reassure clang static analyzer that all is OK 2019-01-23 10:29:20 +01:00
Willem Toorop 79fbef07d8 type specifier misplaced by #ifdef unclarity 2019-01-23 10:27:17 +01:00
Jim Hague 814ee2c4cf Fix more gcc 8 warnings.
As warnings, these cause builds to fail when running the test suite.
2019-01-17 11:23:39 +00:00