Commit graph

10703 commits

Author SHA1 Message Date
Mark Andrews
229e9e2215 check for in-view zones colliding with other zone definitions; also check the syntax of the in-view zone name
(cherry picked from commit 3e7e280040)
2018-03-08 12:20:59 +11:00
Michał Kępień
8f07fb476b Remove duplicate irs_resconf_load() unit test
The "sortlist-v4.conf" unit test for irs_resconf_load() is always run
twice due to a duplicate entry in the "tests" table.  Remove one of them
to prevent this.

(cherry picked from commit 6c09f305ae)
2018-03-06 09:24:41 +01:00
Michał Kępień
b4a10e77ea Do not ignore resolv.conf syntax errors
irs_resconf_load() stores the value returned by add_search() into ret
without consulting its current value first.  This causes any previous
errors raised while parsing resolv.conf to be ignored as long as any
"domain" or "search" statement is present in the file.

Prevent this by returning early in case an error is detected while
parsing resolv.conf.  Ensure that "searchlist" and "magic" members of
the created irs_resconf_t structure are always initialized before
isc_resconf_destroy() is called.

(cherry picked from commit 1f400b68a8)
2018-03-06 09:24:41 +01:00
Evan Hunt
95c01ddde2 temporarily revert change #4859
(cherry picked from commit 84ec07999f)
2018-03-02 12:02:49 -08:00
Evan Hunt
0be726b440 minor cleanup and addressed a sprintf format warning
(cherry picked from commit ab0fe63f07)
2018-02-26 10:45:13 +11:00
Mark Andrews
bf79ae278c update printf format to match type
(cherry picked from commit 48ca11df5f)
2018-02-26 10:40:11 +11:00
Mark Andrews
4d8e501abe improve the conditional declaration and use of variable to silence cppcheck
(cherry picked from commit a04bb76973)
2018-02-26 10:40:11 +11:00
Mark Andrews
ae50b73d78 remove deadcode
(cherry picked from commit b71a1386ed)
2018-02-26 10:40:10 +11:00
Mark Andrews
ded99ca751 silence unread assignment warning by using POST macro
(cherry picked from commit e8249dcd49)
2018-02-26 10:40:10 +11:00
Mark Andrews
2c53a82644 update the sscanf format strings so they match the pointer types
(cherry picked from commit 70d192eb97)
2018-02-26 10:40:10 +11:00
Mark Andrews
77819f7d75 redefine CHECK so cppcheck see the definition
(cherry picked from commit a4186b1867)
2018-02-26 10:40:10 +11:00
Mark Andrews
edbca5937c conditionally typedef fstrmtable
(cherry picked from commit dcd309bea1)
2018-02-26 10:40:09 +11:00
Mark Andrews
82b109bf5d adjust goto target and conditional compilation so that cleanup_spillattimer and cleanup_alglock labels match the element to be cleanup and so that they are always used
(cherry picked from commit 7b27be54ee)
2018-02-26 10:40:09 +11:00
Petr Menšík
6d9b38e9fe unit/unittest.sh is generated by configure. It will always be
generated into builddir. If out-of-tree build is used, make unit
will always fail. Kyuafiles and testdata still have to be copied
manually into the builddir.

(cherry picked from commit 95cde3608a)
2018-02-23 15:50:33 -08:00
Petr Menšík
6876501605 Reuse new function from rt46864 for similar block elsewhere.
(cherry picked from commit e7a93321f0)
(cherry picked from commit cb98ce8e67)
2018-02-23 13:52:43 -08:00
Michał Kępień
5c080dfe73 Do not recheck DNS_ZONEFLG_LOADPENDING in zone_asyncload()
Remove a block of code which dates back to commit 8a2ab2b920, when
dns_zone_asyncload() did not yet check DNS_ZONEFLG_LOADPENDING.
Currently, no race in accessing DNS_ZONEFLG_LOADPENDING is possible any
more, because:

  - dns_zone_asyncload() is still the only function which may queue
    zone_asyncload(),

  - dns_zone_asyncload() accesses DNS_ZONEFLG_LOADPENDING under a lock
    (and potentially queues an event under the same lock),

  - DNS_ZONEFLG_LOADPENDING is not cleared until the load actually
    completes.

Thus, the rechecking code can be safely removed from zone_asyncload().

Note that this also brings zone_asyncload() to a state in which the
completion callback is always invoked.  This is required to prevent
leaking memory in case something goes wrong in zone_asyncload() and a
zone table the zone belongs to is indefinitely left with a positive
reference count.
2018-02-16 08:58:24 +01:00
Michał Kępień
4d391101a4 Asynchronous zone load events have no way of getting canceled
Code handling cancellation of asynchronous zone load events was likely
copied over from other functions when asynchronous zone loading was
first implemented in commit 8a2ab2b920.  However, unlike those other
functions, asynchronous zone loading events currently have no way of
getting canceled once they get posted, which means the aforementioned
code is effectively dead.  Remove it to prevent confusion.
2018-02-16 08:58:24 +01:00
Michał Kępień
749b3cacfc Only clear DNS_ZONEFLG_LOADPENDING in zone_asyncload() if zone loading is completed immediately
zone_load() is not always synchronous, it may only initiate an
asynchronous load and return DNS_R_CONTINUE, which means zone loading
has not yet been completed.  In such a case, zone_asyncload() must not
clear DNS_ZONEFLG_LOADPENDING immediately and leave that up to
zone_postload().
2018-02-16 08:58:24 +01:00
Michał Kępień
e0205aac03 Lock zone before checking whether its asynchronous load is already pending
While this is not an issue in named, which only calls
dns_zone_asyncload() from task-exclusive mode, this function is exported
by libdns and thus may in theory be concurrently called for the same
zone by multiple threads.  It also does not hurt to be consistent
locking-wise with other DNS_ZONEFLG_LOADPENDING accesses.
2018-02-16 08:58:24 +01:00
Mark Andrews
ad5550c029 add POST(len); 2018-02-16 15:08:25 +11:00
Mark Andrews
65cfe7e1ad conditionally declare stacksize 2018-02-16 15:08:24 +11:00
Mark Andrews
027bc5535c add POST(len); 2018-02-16 15:08:24 +11:00
Mark Andrews
bdf5c08fc4 Clarify calculation precedence for '&' and '?' 2018-02-16 15:08:24 +11:00
Mark Andrews
2c85b9afd7 add POST(tl) 2018-02-16 15:08:24 +11:00
Mark Andrews
118203925a conditionally declare strbuf 2018-02-16 15:06:51 +11:00
Mark Andrews
c2e6e799b3 test for == 0 rather than <= as value is unsigned 2018-02-16 15:00:06 +11:00
Mark Andrews
22c6b2308e use %u instead of %d 2018-02-16 14:58:17 +11:00
Mark Andrews
c58169ff1c use %u instead of %d 2018-02-16 14:58:17 +11:00
Mark Andrews
8db1762d68 use %u instead of %d 2018-02-16 14:58:17 +11:00
Mark Andrews
f6dae15117 use %u instead of %d 2018-02-16 14:58:17 +11:00
Mark Andrews
8d9097b0b7 use %u instead of %d 2018-02-16 14:58:17 +11:00
Mark Andrews
54672c31b9 use %u instead of %d 2018-02-16 14:54:36 +11:00
Mark Andrews
262d514345 use %u instead of %d 2018-02-16 14:54:36 +11:00
Mark Andrews
8c51ba3aac use %u instead of %d 2018-02-16 14:54:36 +11:00
Mark Andrews
8dba09602b case to unsigned; reorder expression 2018-02-16 14:52:51 +11:00
Mark Andrews
012ae8afa2 simplify expression 2018-02-16 14:45:20 +11:00
Mark Andrews
0ae4bf22d2 use %u and preserve unsigned property 2018-02-16 14:45:20 +11:00
Mark Andrews
7873680877 cast to unsigned 2018-02-16 14:36:56 +11:00
Mark Andrews
ea6732c354 preserve unsigned property 2018-02-16 14:36:56 +11:00
Mark Andrews
c57610f1cc make both arguments of & unsigned 2018-02-16 14:36:56 +11:00
Mark Andrews
faf0e3ff65 use %u instead of %d 2018-02-16 14:36:56 +11:00
Mark Andrews
ab0805b73e shift unsigned (~0U) rather than signed (~0) contant 2018-02-16 14:35:36 +11:00
Mark Andrews
4b83e4e105 use %u instead of %d 2018-02-16 14:35:36 +11:00
Mark Andrews
351a27ef5b unsigned constants 2018-02-16 14:35:36 +11:00
Mark Andrews
e6cd8a52aa unsigned constants 2018-02-16 14:34:18 +11:00
Mark Andrews
9cc1ea9566 use %u instead of %d 2018-02-16 14:32:24 +11:00
Mark Andrews
2bbdfaaa0a use %u instead of %d 2018-02-16 14:32:24 +11:00
Mark Andrews
95657b047e use %u instead of %d 2018-02-16 14:32:24 +11:00
Mark Andrews
42c12e6b81 INSIST ipnum6 != NULL 2018-02-16 14:29:27 +11:00
Mark Andrews
cd86c23e87 use %u instead of %d 2018-02-16 14:29:27 +11:00