Commit Graph
389 Commits
Author SHA1 Message Date
Mark AndrewsandEvan Hunt e4f7d6c418 explictly convert ISC_R_NOSPACE from dns_message_parse to DNS_R_FORMERR and remove from dns_result_torcode
(cherry picked from commit 0c42a9c0ab)
2019-01-08 20:51:27 -08:00
Ondřej Surý 2f8b28efad Hint the compiler with ISC_UNREACHABLE(); that code after INSIST(0); cannot be reached
(cherry picked from commit 23fff6c569)
(cherry picked from commit 4568669807)
2018-11-08 22:42:52 +07:00
Ondřej Surý 9d15323e24 Add small tweaks to the code to fix compilation when ISC assertions are disabled
While implementing the new unit testing framework cmocka, it was found that the
BIND 9 code doesn't compile when assertions are disabled or replaced with any
function (such as mock_assert() from cmocka unit testing framework) that's not
directly recognized as assertion by the compiler.

This made the compiler to complain about blocks of code that was recognized as
unreachable before, but now it isn't.

The changes in this commit include:

* assigns default values to couple of local variables,
* moves some return statements around INSIST assertions,
* adds __builtin_unreachable(); annotations after some INSIST assertions,
* fixes one broken assertion (= instead of ==)

(cherry picked from commit fbd2e47f51)
(cherry picked from commit b222783ae9)
2018-11-08 22:00:49 +07:00
Ondřej Surý 1084b40b44 Replace custom isc_boolean_t with C standard bool type
(cherry picked from commit 994e656977)
(cherry picked from commit 884929400c)
2018-08-10 15:20:57 +02:00
Ondřej Surý aaa76dc654 Replace custom isc_u?intNN_t types with C99 u?intNN_t types
(cherry picked from commit cb6a185c69)
(cherry picked from commit d61e6a3111)
2018-08-10 15:20:57 +02:00
Mukund SivaramanandEvan Hunt 49cd7552be return FORMERR when question section is empty if COOKIE is not present
(cherry picked from commit 06d3106002)
(cherry picked from commit ed29b84e16)
2018-06-26 14:44:18 -07:00
Mark Andrews d3982afe5c the client cookie was being hashed twice when computing the server cookie for sha1 and sha256
(cherry picked from commit 4795f0ca89)
2018-06-22 17:45:32 +10:00
Mukund SivaramanandMark Andrews 441de7dbe3 Add a answer-cookie named config option
(cherry picked from commit 2930507357)
2018-06-08 17:29:28 +10:00
Mark AndrewsandEvan Hunt f9d19cab7f 4699. [func] Multiple cookie-secret clauses can now be specified.
The first one specified is used to generate new
                        server cookies.  [RT #45672]
2018-06-04 13:16:28 -07:00
Tony FinchandEvan Hunt b53dee6d8f dnstap: log actual local IPv6 address, not :: listening address
(cherry picked from commit ccff953c25)
2018-04-10 17:26:08 -07:00
Evan Hunt 8b205089b7 update file headers to remove copyright years 2018-03-14 16:40:20 -07:00
Mark Andrews 04c5165b40 use %u instead of %d 2018-02-16 14:58:17 +11:00
Tinderbox User a853d87fc4 update copyright notice / whitespace 2018-01-13 23:48:14 +00:00
Mukund Sivaraman 929329d2d6 Fix various bugs reported by valgrind --tool=memcheck (#46978)
(cherry picked from commit f96133826e)
(cherry picked from commit 0374e1c3fd)
2018-01-13 11:47:46 +05:30
Mark Andrews f1b3c45513 fix the IPv6 address length in compute_cookie. [RT #46538]
(cherry picked from commit b231ddc65d)
2017-11-10 00:03:59 +11:00
Mark Andrews 77db93e68c silence VC compiler warning
(cherry picked from commit e09b9e7a91)
2017-10-07 14:04:57 +11:00
Mark Andrews 94deea78f4 fix merge error 2017-10-06 14:12:14 +11:00
Mark Andrews 1c8aa38b53 4759. [func] Add logging channel "trust-anchor-telementry" to
record trust-anchor-telementry in incoming requests.
                            Both _ta-XXXX.<anchor>/NULL and EDNS KEY-TAG options
                            are logged.  [RT #46124]

    (cherry picked from commit b41c1aacbc)
2017-10-06 13:53:50 +11:00
Evan Hunt 7cd594b842 [master] cleanup strcat/strcpy
4722.	[cleanup]	Clean up uses of strcpy() and strcat() in favor of
			strlcpy() and strlcat() for safety. [RT #45981]

(cherry picked from commit 114f95089c)
2017-09-13 00:17:16 -07:00
Tinderbox User 1617002c78 update copyright notice / whitespace 2017-02-04 23:46:08 +00:00
Evan Hunt 07b7a3eade [v9_11] store local and remote addresses in dnstap
4569.	[func]		Store both local and remote addresses in dnstap
			logging, and modify dnstap-read output format to
			print them. [RT #43595]

(cherry picked from commit 650b5e7592)
2017-02-03 17:11:06 -08:00
Mark Andrews bc2510a6a5 4536. [bug] ISC_SOCKEVENTATTR_USEMINMTU was not being cleared
when reusing the event structure. [RT #43885]

(cherry picked from commit a678e70481)
2016-12-14 10:43:24 +11:00
Mark Andrews 348d80fb84 4534. [bug] Only set RD, RA and CD in QUERY responses. [RT #43879]
(cherry picked from commit def6b33bad)
2016-12-13 16:27:49 +11:00
Evan Hunt fcadf0b320 [v9_11] render querylog format consistent, and add a release note
4471.	[cleanup]	Render client/query logging format consistent for
			ease of log file parsing. (Note that this affects
			"querylog" format: there is now an additional field
			indicating the client object address.) [RT #43238]

(cherry picked from commit c4b7db4932)
2016-09-22 14:49:26 -07:00
Mark Andrews db9781d4a2 4468. [bug] Address ECS option handling issues. [RT #43191]
(cherry picked from commit df17290113)
2016-09-14 08:23:07 +10:00
Evan Hunt af326c2e3f [v9_11] fix tcp client memory leak
4459.	[bug]		TCP client objects created to handle pipeline queries
			were not cleaned up correctly, causing uncontrolled
			memory growth. [RT #43106]

(cherry picked from commit a26a62cef2)
2016-08-29 11:56:56 -07:00
Mark Andrews 36be0aad8e 4435. [tuning] Only set IPV6_USE_MIN_MTU for UDP when the message
will not fit into a single IPv4 encapsulated IPv6
                        UDP packet when transmitted over a Ethernet link.
                        [RT #42871]

(cherry picked from commit 31ffec1541)
2016-08-12 09:43:55 +10:00
Mukund Sivaraman 2d5581de6e Make fixes for GCC 6 (#42721)
(cherry picked from commit 4116177ac4)
2016-07-13 13:56:22 +05:30
Mark Andrews 28303a06ce 4410. [bug] Address use after free and memory leak with dnstap.
[RT #42746]

(cherry picked from commit a2101037d9)
2016-07-13 16:56:53 +10:00
Mark Andrews 0c27b3fe77 4401. [misc] Change LICENSE to MPL 2.0. 2016-06-27 14:56:38 +10:00
Tinderbox User 601645a1e8 update copyright notice / whitespace 2016-06-22 23:45:21 +00:00
Mark Andrews 10966da999 4402. [func] Collect statistics for RSSAC02v3 traffic-volume,
traffic-sizes and rcode-volume reporting. [RT #41475]
2016-06-23 08:44:54 +10:00
Mark Andrews d055178624 simplify poorly written conditional 2016-06-02 10:18:17 +10:00
Mark Andrews 4f200033d1 explict conversion 2016-05-17 17:22:51 +10:00
Witold Krecicki 19d80ce584 4358. [test] Added American Fuzzy Lop harness that allows
feeding fuzzed packets into BIND.
			[RT #41723]
2016-05-05 11:49:38 +02:00
Evan Hunt 7fa4c18451 [master] ECS family 0 handling was still broken 2016-03-23 15:00:30 -07:00
Evan Hunt 395e6865d5 [master] fix ECS with family==0
4341.	[bug]		Correct the handling of ECS options with
			address family 0. [RT #41377]
2016-03-23 08:54:46 -07:00
Mark Andrews 455c0848f8 4322. [security] Duplicate EDNS COOKIE options in a response could
trigger an assertion failure. (CVE-2016-2088)
                        [RT #41809]
2016-02-27 11:23:50 +11:00
Evan Hunt d40154cab7 [master] cacluate TCP packet sizes correctly
4296.	[bug]		TCP packet sizes were calculated incorrectly in the
			stats channel; they could be counted in the wrong
			histogram bucket. [RT #40587]
2016-01-20 17:30:27 -08:00
Tinderbox User e1836d1fe4 update copyright notice / whitespace 2016-01-04 23:45:26 +00:00
Evan Hunt 3bcd09b416 [master] silence noisy logging
4287.	[bug]		Silence an overly noisy log message when message
			parsing fails. [RT #41374]
2016-01-04 13:05:23 -08:00
Francis Dupont dd784c18ef Merged VS 2015 64 bit warnings (#40373) 2015-11-16 17:47:10 +01:00
Witold Krecicki bfd4b9e11a 4255. [func] Add 'message-compression' option to disable DNS compression in responses. [RT #40726] 2015-11-05 12:19:04 +01:00
Evan Hunt b66b333f59 [master] dnstap
4235.	[func]		Added support in named for "dnstap", a fast method of
			capturing and logging DNS traffic, and a new command
			"dnstap-read" to read a dnstap log file.  Use
			"configure --enable-dnstap" to enable this
			feature (note that this requires libprotobuf-c
			and libfstrm). See the ARM for configuration details.

			Thanks to Robert Edmonds of Farsight Security.
			[RT #40211]
2015-10-02 12:32:42 -07:00
Mark Andrews 4d085258cc make macro name match category name 2015-09-29 15:02:49 +10:00
Mark Andrews a0ef8211d3 4201. [func] The default preferred-glue is now the address record
type of the transport the query was received
                        over.  [RT #40468]
2015-09-11 13:27:58 +10:00
Evan Hunt 420a43c8d8 [master] timing safe memory comparisons
4183.	[cleanup]	Use timing-safe memory comparisons in cryptographic
			code. Also, the timing-safe comparison functions have
			been renamed to avoid possible confusion with
			memcmp(). [RT #40148]
2015-08-17 18:26:44 -07:00
Evan Hunt bf4a7968e8 [master] errors in pipelined queries could assert
4180.	[bug]		Error responses in pipelined queries could
			cause a crash in client.c. [RT #40289]
2015-08-14 08:34:54 -07:00
Mark Andrews 58eb2006a4 return notimp for qcount=0 unimplemeneted opcodes
(cherry picked from commit 7c10dc502a34f88f11c6b6469bb234c72e61fec8)
2015-07-24 13:37:12 +10:00
Evan Hunt 1479200aa0 [master] DDoS mitigation features
3938.	[func]		Added quotas to be used in recursive resolvers
			that are under high query load for names in zones
			whose authoritative servers are nonresponsive or
			are experiencing a denial of service attack.

			- "fetches-per-server" limits the number of
			  simultaneous queries that can be sent to any
			  single authoritative server.  The configured
			  value is a starting point; it is automatically
			  adjusted downward if the server is partially or
			  completely non-responsive. The algorithm used to
			  adjust the quota can be configured via the
			  "fetch-quota-params" option.
			- "fetches-per-zone" limits the number of
			  simultaneous queries that can be sent for names
			  within a single domain.  (Note: Unlike
			  "fetches-per-server", this value is not
			  self-tuning.)
			- New stats counters have been added to count
			  queries spilled due to these quotas.

			See the ARM for details of these options. [RT #37125]
2015-07-08 22:53:39 -07:00