BIND issueshttps://gitlab.isc.org/isc-projects/bind9/-/issues2022-03-01T09:57:47Zhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2417CID 316513: Insecure data handling (TAINTED_SCALAR)2022-03-01T09:57:47ZMichal NowakCID 316513: Insecure data handling (TAINTED_SCALAR)```
*** CID 316513: Insecure data handling (TAINTED_SCALAR)
/lib/dns/master.c: 2618 in load_raw()
2612 * the target available region be the same if
2613 * decompression is disabled (see dctx above) and we
2614 *...```
*** CID 316513: Insecure data handling (TAINTED_SCALAR)
/lib/dns/master.c: 2618 in load_raw()
2612 * the target available region be the same if
2613 * decompression is disabled (see dctx above) and we
2614 * are not downcasing names (options == 0).
2615 */
2616 isc_buffer_init(&buf, isc_buffer_current(&target),
2617 (unsigned int)rdlen);
>>> CID 316513: Insecure data handling (TAINTED_SCALAR)
>>> Passing tainted expression "target.active" to "dns_rdata_fromwire", which uses it as a loop boundary.
2618 result = dns_rdata_fromwire(
2619 &rdata[i], rdatalist.rdclass, rdatalist.type,
2620 &target, &dctx, 0, &buf);
2621 if (result != ISC_R_SUCCESS) {
2622 goto cleanup;
2623 }
```Not plannedMark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/issues/2411Gracefully shutdown the TLS connections in TLSDNS using SSL_shutdown2021-09-02T12:42:57ZOndřej SurýGracefully shutdown the TLS connections in TLSDNS using SSL_shutdownThe SSL_shutdown needs bit back and forth on the networking channel, so right now we are doing ungraceful shutdown by tearing down the underlying TCP connection. This should be fixed to behave like a good netizen.The SSL_shutdown needs bit back and forth on the networking channel, so right now we are doing ungraceful shutdown by tearing down the underlying TCP connection. This should be fixed to behave like a good netizen.Not plannedOndřej SurýOndřej Surýhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2405[ISC-support #17264] ADB overmem condition and cleaning - very difficult to d...2024-03-01T10:04:57ZBrian Conry[ISC-support #17264] ADB overmem condition and cleaning - very difficult to detect and causes erratic behaviorThe ADB's mctx size is set to 1/8 of the max-cache-size, if set. This is the only means to control the ADB memory limit. There is also a hard-coded maximum ADB size applied to ADBs for views that share a cache.
When it goes overmem, t...The ADB's mctx size is set to 1/8 of the max-cache-size, if set. This is the only means to control the ADB memory limit. There is also a hard-coded maximum ADB size applied to ADBs for views that share a cache.
When it goes overmem, the ADB starts removing names and entries. The strategy for removing entries doesn't seem to be tied strongly to utility.
This can lead to erratic behavior as BIND is constantly forgetting information about server SRTTs, EDNS capabilities, and other useful data.
In some cases, if not all of the entries for servers associated with a zone are affected by the overmem purge, this can cause the resolver to fixate on a small subset of the servers authoritative for the zone - and not necessarily the subset with the best SRTT.
There is no logging at any level related to ADB overmem activities, nor are there any stats directly related to ADB memory usage.
There are stats for counts of names and entries, along with the number of buckets for each type, but there's no reliable way to map those to memory usage.
The stats channel does contain detail for the ADB memory contexts, but there's no reliable way to map those memory contexts to a particular view.
It seems likely that most of the time the symptoms of an overmem ADB will be minor and nearly impossible to directly measure - small delays and increases in CPU usage associated with the repeated creation and destruction of ADB entries and/or fixation on suboptimal upstream servers - but will definitely degrade the quality of service that the resolver is providing.
This behavior was noticed by a customer when their monitoring zone happened to, by chance, be negatively affected.
Most of the symptoms described here are theoretical, based on my understanding of the code and various customer-described, but unreproducable and otherwise unexplained, behaviors.
This issue is a feature request covering:
* specific testing by ISC to better understand the impact and range of behaviors with the ADB is overmem #2441
* additional logging related to ADB overmem activities #2435
* additional stats/metrics relating to ADB overmem #2436
* improvements to ADB overmem behavior (ideally based on some utility metric) #2437
* ability to directly control ADB size independent of cache size #2438
* revisit the hard-coded shared-cache maximum ADB size (e.g. remove in favor of configuration) #2439
* system tests related to any/all items aboveNot plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2385Glue records can be returned when the name server's name is same as the zone ...2022-03-01T09:42:29ZSiva Kesava R KakarlaGlue records can be returned when the name server's name is same as the zone origin### Summary
Similar to issue #2384, when the `NS` records name server's name is the same as the zone origin and if the zone origin has IP records, then they are not returned ([RFC 8499 Page 25](https://www.rfc-editor.org/rfc/rfc8499.htm...### Summary
Similar to issue #2384, when the `NS` records name server's name is the same as the zone origin and if the zone origin has IP records, then they are not returned ([RFC 8499 Page 25](https://www.rfc-editor.org/rfc/rfc8499.html)). Returning these kinds of glue records is optional, and the specification does not mandate it. As in the other issue, all the other famous implementations return them, so I am raising it as an issue but feel free to take it down.
### BIND version used
BIND 9.17.8 (Development Release) <id:8c6db04>
### Steps to reproduce
Consider the following zone file:
| | | |
|--------------------|-----------|----------------------------------------------------------|
|foo.com | 500 SOA | ns1.outside.edu. root.campus.edu. 3 86400 7200 604800 300 |
| foo.com. | 500 NS | ns1.outside.edu. |
| foo.com. | 500 AAAA| 2400:cb00:2049:1::a29f:1804 |
| foo.com. | 500 A | 1.1.1.1 |
| bar.foo.com. | 500 NS | foo.com. |
For the query `<bar.foo.com., SOA>` the answer from the BIND server is:
```
";QUESTION",
"bankcard.foo.com. IN SOA",
";ANSWER",
";AUTHORITY",
"bar.foo.com. 500 IN NS foo.com.",
";ADDITIONAL"
```
Other implementations return the additional section as follows:
```
";ADDITIONAL",
"foo.com. 500 IN A 1.1.1.1",
"foo.com. 500 IN AAAA 2400:cb00:2049:1::a29f:1804"
```
### What is the expected *correct* behavior?
The IP records can also be returned.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2384Sibling (In-bailiwick rule of RFC 8499) domain IP records not returned2022-03-01T09:42:33ZSiva Kesava R KakarlaSibling (In-bailiwick rule of RFC 8499) domain IP records not returned### Summary
In the case of delegation, when the name server's name is subordinate to the zone origin but not to the same owner name of the NS records, then the IP records are not returned. There is no rule mentioning that they have to b...### Summary
In the case of delegation, when the name server's name is subordinate to the zone origin but not to the same owner name of the NS records, then the IP records are not returned. There is no rule mentioning that they have to be returned, but other implementations like PowerDNS, Knot, NSD return them, so I am curious why BIND made this choice. (I am sorry if it was already mentioned in other issues; I did not find info when I searched.)
### BIND version used
BIND 9.17.8 (Development Release) <id:8c6db04>
### Steps to reproduce
Consider the following zone file:
| | | |
|--------------------|-----------|----------------------------------------------------------|
| campus.edu. | 500 SOA | ns1.outside.edu. root.campus.edu. 3 86400 7200 604800 300 |
| campus.edu. | 500 NS | ns1.outside.edu. |
| foo.campus.edu. | 500 NS | bar.campus.edu. |
| bar.campus.edu. | 500 A | 1.1.1.1 |
For the query `<a.foo.campus.edu., A>` the answer from the BIND server is:
```
"opcode QUERY",
"rcode NOERROR",
"flags QR",
";QUESTION",
"a.foo.campus.edu. IN A",
";ANSWER",
";AUTHORITY",
"foo.campus.edu. 500 IN NS bar.campus.edu. ",
";ADDITIONAL"
```
### What is the current *bug* behavior?
As mentioned earlier, this is not a buggy behavior but a deviation from others where they return the `A` record in the additional section.
### What is the expected *correct* behavior?
The glue records for sibling domains can also be returned.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2358Update CI to have poisoned header files2022-03-01T09:42:36ZMark AndrewsUpdate CI to have poisoned header filesUpdate the CI to have a system with poisoned header files installed to detect when include order has been broken. The header files in the build / source tree should be found before these poisoned header files.
The contents of the poiso...Update the CI to have a system with poisoned header files installed to detect when include order has been broken. The header files in the build / source tree should be found before these poisoned header files.
The contents of the poisoned header files should be something like `#error fix include order`.
/usr/include and /usr/local/include would be ideal locations to add poisoned header files.
#2357 is what happens when we don't detect this at development time. I used poisoned <isc/types.h> and <dns/types.h> when testing the fixes for #2357 but really should have every header file with poisoned versions.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2330Add a test that max-udp-size can send a 4096 octet UDP response if it is set ...2022-03-01T09:42:51ZOndřej SurýAdd a test that max-udp-size can send a 4096 octet UDP response if it is set to that value.Stemmed from the MR: https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/4449#note_180129
People expect that `max-udp-size` changes the EDNS Buffer Size and the throttling by `nocookie-udp-size` was bit unexpected. Let's add a t...Stemmed from the MR: https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/4449#note_180129
People expect that `max-udp-size` changes the EDNS Buffer Size and the throttling by `nocookie-udp-size` was bit unexpected. Let's add a test that matches the people's expectations.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2260Fix pkcs11 system test to handle revoked key collisions.2022-03-01T09:42:56ZMark AndrewsFix pkcs11 system test to handle revoked key collisions.Job [#1286395](https://gitlab.isc.org/isc-projects/bind9/-/jobs/1286395) failed for c19a35c945ebc21272143253d408e145b949a966:
```
S:pkcs11:2020-11-10T04:19:15+0000
T:pkcs11:1:A
A:pkcs11:System test pkcs11
I:pkcs11:PORTS:30765,30766,3076...Job [#1286395](https://gitlab.isc.org/isc-projects/bind9/-/jobs/1286395) failed for c19a35c945ebc21272143253d408e145b949a966:
```
S:pkcs11:2020-11-10T04:19:15+0000
T:pkcs11:1:A
A:pkcs11:System test pkcs11
I:pkcs11:PORTS:30765,30766,30767,30768,30769,30770,30771,30772,30773,30774
=I:pkcs11:Generating keys for Native PKCS#11
dnssec-keyfromlabel: fatal: dnssec-keyfromlabel: ./Krsasha256.example.+008+38641 could collide with another key upon revokation
I:pkcs11:setup.sh script failed
R:pkcs11:FAIL
E:pkcs11:2020-11-10T04:19:15+0000
FAIL pkcs11 (exit status: 1)
```Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2234Add ARM64 build, unit and system test CI jobs2020-10-26T12:30:11ZMichal NowakAdd ARM64 build, unit and system test CI jobsWe used to have ARM64 host before, but it was removed due to it's connectivity problems.
We should add ARM64 CI jobs for two reasons:
1. we support the ARM64 platform and distributions are [actively packaging it](https://gitlab.isc.org...We used to have ARM64 host before, but it was removed due to it's connectivity problems.
We should add ARM64 CI jobs for two reasons:
1. we support the ARM64 platform and distributions are [actively packaging it](https://gitlab.isc.org/isc-projects/bind9/-/issues/2167)
2. Fedora on ARM64 is one of stress test targets and we should ensure that BIND works on this platform before we proceed to later stages of the release process
This requires ARM64 host, possibly AWS, performance-wise we should be close to AMD64 hosts not to block pipelines.
OS platform should be Fedora to match stress test CI jobs.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2213Inline signing: AXFR before zone load on a secondary server prevents zone fro...2023-11-02T17:00:03ZMichał KępieńInline signing: AXFR before zone load on a secondary server prevents zone from being servedConsider an inline-signing secondary server ("bump-in-the-wire") that is
starting up with a previous version of a signed zone available locally.
The typical chain of events is that the server first loads the zone from
storage and then l...Consider an inline-signing secondary server ("bump-in-the-wire") that is
starting up with a previous version of a signed zone available locally.
The typical chain of events is that the server first loads the zone from
storage and then listens to any incoming NOTIFY messages indicating that
the unsigned zone has changed. When the unsigned zone gets updated, its
signed counterpart also gets updated accordingly and the process repeats
itself. This works as expected.
However, if the secondary server receives a NOTIFY for an inline-signed
zone and manages to transfer the unsigned zone in *before* attempting to
load the previous version of the signed zone from storage, things will
break in a way which prevents the inline-signed zone from being served:
```
13-Oct-2020 15:38:01.994 client @0x7f41ac0012f8 10.53.0.2#60440: received notify for zone 'bits'
13-Oct-2020 15:38:01.994 zone bits/IN (unsigned): notify from 10.53.0.2#60440: no serial
13-Oct-2020 15:38:01.994 queue_soa_query: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.461 soa_query: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.464 refresh_callback: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.464 refresh_callback: zone bits/IN (unsigned): serial: new 2011072450, old not loaded
13-Oct-2020 15:38:02.464 queue_xfrin: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.464 zone bits/IN (unsigned): Transfer started.
13-Oct-2020 15:38:02.464 zone bits/IN (unsigned): no database exists yet, requesting AXFR of initial version from 10.53.0.2#32589
13-Oct-2020 15:38:02.464 transfer of 'bits/IN (unsigned)' from 10.53.0.2#32589: connected using 10.53.0.3#43661
13-Oct-2020 15:38:02.464 transfer of 'bits/IN (unsigned)' from 10.53.0.2#32589: sent request data
13-Oct-2020 15:38:02.467 transfer of 'bits/IN (unsigned)' from 10.53.0.2#32589: received 168 bytes
;bits. IN AXFR
bits. 0 IN SOA ns2.bits. . 2011072450 20 20 1814400 3600
bits. 300 IN NS ns3.bits.
added.bits. 0 IN A 1.2.3.4
ns2.bits. 300 IN A 10.53.0.2
ns3.bits. 300 IN A 10.53.0.3
bits. 0 IN SOA ns2.bits. . 2011072450 20 20 1814400 3600
13-Oct-2020 15:38:02.467 transfer of 'bits/IN (unsigned)' from 10.53.0.2#32589: got nonincremental response
13-Oct-2020 15:38:02.467 dns_zone_verifydb: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.467 zone bits/IN (unsigned): replacing zone database
13-Oct-2020 15:38:02.467 zone bits/IN (unsigned): zone transfer finished: success
13-Oct-2020 15:38:02.467 zone bits/IN (unsigned): transferred serial 2011072450
13-Oct-2020 15:38:02.467 zone_needdump: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.467 zone_settimer: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.467 zone_settimer: zone bits/IN (unsigned): enter
13-Oct-2020 15:38:02.467 transfer of 'bits/IN (unsigned)' from 10.53.0.2#32589: Transfer status: success
13-Oct-2020 15:38:02.467 transfer of 'bits/IN (unsigned)' from 10.53.0.2#32589: Transfer completed: 1 messages, 6 records, 168 bytes, 0.003 secs (56000 bytes/sec) (serial 2011072450)
13-Oct-2020 15:38:02.467 transfer of 'bits/IN (unsigned)' from 10.53.0.2#32589: freeing transfer context
13-Oct-2020 15:38:02.467 zone bits/IN (signed): number of nodes in database: 4
13-Oct-2020 15:38:02.467 zone bits/IN (signed): journal rollforward failed: journal out of sync with zone
13-Oct-2020 15:38:02.467 zone bits/IN (signed): not loaded due to errors.
13-Oct-2020 15:38:02.467 zone_postload: zone bits/IN (signed): done
13-Oct-2020 15:38:02.467 zone_needdump: zone bits/IN (signed): enter
13-Oct-2020 15:38:02.467 zone bits/IN (signed): receive_secure_db: out of range
```
The underlying cause is that in the broken case,
`lib/dns/journal.c:roll_forward()` retrieves the latest SOA serial
number for the zone from the AXFR rather than from the local copy of the
signed zone.
The time window during which this can happen is rather slim, so I do not
think it is a serious issue, but I decided to open a bug report anyway,
because things are certainly working suboptimally here - it seems to me
that `named` should be able to recover from such a sequence of events
just fine, serving the signed zone in the end.
This was found during [release testing for BIND 9.16.8][1]. I prepared
a crude patch which allows reliably triggering this issue in the
`inline` system test:
```diff
diff --git a/bin/tests/system/inline/tests.sh b/bin/tests/system/inline/tests.sh
index 7d7df7487f4..430f6fcbb77 100755
--- a/bin/tests/system/inline/tests.sh
+++ b/bin/tests/system/inline/tests.sh
@@ -475,7 +475,9 @@ status=`expr $status + $ret`
n=`expr $n + 1`
echo_i "restart bump in the wire signer server ($n)"
ret=0
+export SKIPLOAD="bits"
start_server --noclean --restart --port ${PORT} inline ns3 || ret=1
+unset SKIPLOAD
if [ $ret != 0 ]; then echo_i "failed"; fi
status=`expr $status + $ret`
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
index b8cd90b129a..57bb239c9d5 100644
--- a/lib/dns/zone.c
+++ b/lib/dns/zone.c
@@ -1995,6 +1995,16 @@ zone_load(dns_zone_t *zone, unsigned int flags, bool locked) {
REQUIRE(DNS_ZONE_VALID(zone));
+ {
+ char origin[DNS_NAME_FORMATSIZE];
+ char *skipload = getenv("SKIPLOAD");
+
+ dns_name_format(&zone->origin, origin, sizeof(origin));
+ if (skipload != NULL && !strcmp(skipload, origin)) {
+ return (ISC_R_SUCCESS);
+ }
+ }
+
if (!locked) {
LOCK_ZONE(zone);
}
```
Applying the above patch should result in:
```
I:inline:stop bump in the wire signer server (29)
I:inline:restart bump in the wire signer server (30)
I:inline:checking YYYYMMDDVV (2011072450) serial on hidden primary (31)
I:inline:checking YYYYMMDDVV (2011072450) serial in signed zone (32)
I:inline:failed
I:inline:checking YYYYMMDDVV (2011072450) serial on hidden primary, noixfr (33)
I:inline:checking YYYYMMDDVV (2011072450) serial in signed zone, noixfr (34)
```
and log lines similar to the ones quoted above appearing in
`ns3/named.run`.
AFAICT, all maintained branches are affected.
[1]: https://wiki.isc.org/bin/view/QA/BindQaResults_9_11_24#9.16.8Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2113Hard require Net::DNS >= 0.752022-03-01T09:58:32ZOndřej SurýHard require Net::DNS >= 0.75I and @marka talked today that we should just simply require `Net::DNS` to run the system tests instead of doing `prereq.sh` because it's such essential library.I and @marka talked today that we should just simply require `Net::DNS` to run the system tests instead of doing `prereq.sh` because it's such essential library.Not plannedOndřej SurýOndřej Surýhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2049Compiler warnings identified by Intel C++ Compiler2022-03-01T09:43:08ZMichal NowakCompiler warnings identified by Intel C++ CompilerI successfully build BIND `main` (a14445d472e6287a3bbf7208cb2c7cdba0704be4) with Intel C++ Compiler (`icc (ICC) 19.1.2.254 20200623`), though there were warnings along the way, one unit test failed, and many system test failed (the root ...I successfully build BIND `main` (a14445d472e6287a3bbf7208cb2c7cdba0704be4) with Intel C++ Compiler (`icc (ICC) 19.1.2.254 20200623`), though there were warnings along the way, one unit test failed, and many system test failed (the root cause seems in all these crashes seems to be the same, see below).
Also, there are a lot of optimization "remarks" like:
```
CCLD named-rrchecker
remark #11074: Inlining inhibited by limit max-size
```
One such file: [named-rrchecker.optrpt](/uploads/585ef97dfba19a948aa2be1669aa5d01/named-rrchecker.optrpt).
-----------------
**Warnings**
```
CC unix/libisc_la-net.lo
unix/net.c(535): warning #3179: deprecated conversion of string literal to char* (should be const char*)
typestr = (type == IP_TOS) ? "IP_TOS" : "IPV6_TCLASS";
^
--
CC unix/libisc_la-resource.lo
unix/resource.c(132): warning #188: enumerated type mixed with another type
unixresult = setrlimit(unixresource, &rl);
^
unix/resource.c(163): warning #188: enumerated type mixed with another type
unixresult = setrlimit(unixresource, &rl);
^
unix/resource.c(170): warning #188: enumerated type mixed with another type
if (getrlimit(unixresource, &rl) == 0) {
^
unix/resource.c(172): warning #188: enumerated type mixed with another type
unixresult = setrlimit(unixresource, &rl);
^
unix/resource.c(192): warning #188: enumerated type mixed with another type
if (getrlimit(unixresource, &rl) != 0) {
^
unix/resource.c(211): warning #188: enumerated type mixed with another type
if (getrlimit(unixresource, &rl) != 0) {
^
--
CC unix/libisc_la-socket.lo
unix/socket.c(1094): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_TRUNC;
^
unix/socket.c(1100): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_CTRUNC;
^
unix/socket.c(1125): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_PKTINFO;
^
unix/socket.c(1130): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_MULTICAST;
^
unix/socket.c(1143): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_TIMESTAMP;
^
unix/socket.c(1153): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_DSCP;
^
unix/socket.c(1168): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_DSCP;
^
unix/socket.c(1441): warning #188: enumerated type mixed with another type
ev->attributes = 0;
^
unix/socket.c(3944): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_ATTACHED;
^
unix/socket.c(3935): warning #589: transfer of control bypasses initialization of:
variable "do_poke" (declared at line 3955)
switch (io_state) {
--
unix/socket.c(4024): warning #188: enumerated type mixed with another type
event->attributes = 0;
^
unix/socket.c(4055): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_PKTINFO;
^
unix/socket.c(4095): warning #188: enumerated type mixed with another type
dev->attributes |= ISC_SOCKEVENTATTR_ATTACHED;
^
unix/socket.c(4199): warning #188: enumerated type mixed with another type
event->attributes &= ~ISC_SOCKEVENTATTR_ATTACHED;
^
--
CC libisc_la-task.lo
task.c(1559): warning #188: enumerated type mixed with another type
return (atomic_load(&manager->mode));
^
--
CC libdns_la-dispatch.lo
dispatch.c(749): warning #188: enumerated type mixed with another type
bindoptions = 0;
^
dispatch.c(753): warning #188: enumerated type mixed with another type
bindoptions |= ISC_SOCKET_REUSEADDRESS;
^
dispatch.c(990): warning #188: enumerated type mixed with another type
ev->attributes = 0;
^
dispatch.c(1747): warning #188: enumerated type mixed with another type
result = isc_socket_bind(sock, local, options);
^
--
CC libdns_la-dst_api.lo
dst_api.c(1940): warning #188: enumerated type mixed with another type
dst_key_state_t value = 0;
^
--
CC libdns_la-rbtdb.lo
rbtdb.c(1365): warning #188: enumerated type mixed with another type
version->hash = 0;
^
rbtdb.c(8715): warning #188: enumerated type mixed with another type
rbtdb->current_version->hash = 0;
^
--
from rdata.c(553):
rdata/generic/nsec3_50.c(300): warning #188: enumerated type mixed with another type
nsec3->hash = uint8_consume_fromregion(®ion);
^
--
from rdata.c(553):
rdata/generic/nsec3param_51.c(236): warning #188: enumerated type mixed with another type
nsec3param->hash = uint8_consume_fromregion(®ion);
^
--
from rdata.c(553):
rdata/generic/amtrelay_260.c(156): warning #3179: deprecated conversion of string literal to char* (should be const char*)
space = (gateway != 0U) ? " " : "";
^
--
CC libdns_la-request.lo
request.c(159): warning #592: variable "sock" is used before its value is set
UNUSED(sock);
^
request.c(440): warning #188: enumerated type mixed with another type
sendevent->attributes &= ~ISC_SOCKEVENTATTR_DSCP;
^
request.c(443): warning #188: enumerated type mixed with another type
sendevent->attributes |= ISC_SOCKEVENTATTR_DSCP;
^
request.c(564): warning #188: enumerated type mixed with another type
result = isc_socket_bind(sock, &bind_any, 0);
^
request.c(568): warning #188: enumerated type mixed with another type
result = isc_socket_bind(sock, &src, 0);
^
--
CC libdns_la-resolver.lo
resolver.c(1233): warning #188: enumerated type mixed with another type
query->attributes |= RESQUERY_ATTR_CANCELED;
^
resolver.c(2016): warning #188: enumerated type mixed with another type
query->attributes = 0;
^
resolver.c(2098): warning #188: enumerated type mixed with another type
result = isc_socket_bind(query->tcpsocket, &addr, 0);
^
resolver.c(2387): warning #1292: unknown attribute "nonstring"
uint8_t buf[16] ISC_NONSTRING = { 0 };
^
resolver.c(2390): warning #1292: unknown attribute "nonstring"
uint8_t digest[ISC_SIPHASH24_TAG_LENGTH] ISC_NONSTRING = { 0 };
^
resolver.c(2913): warning #188: enumerated type mixed with another type
query->sendevent.attributes &= ~ISC_SOCKEVENTATTR_DSCP;
^
resolver.c(2916): warning #188: enumerated type mixed with another type
query->sendevent.attributes |= ISC_SOCKEVENTATTR_DSCP;
^
resolver.c(9669): warning #3179: deprecated conversion of string literal to char* (should be const char*)
FCTXTRACE4("query canceled in response(); ",
^
--
CC libdns_la-rrl.lo
rrl.c(496): warning #188: enumerated type mixed with another type
ratep = get_rate(rrl, e->key.s.rtype);
^
rrl.c(642): warning #188: enumerated type mixed with another type
ratep = get_rate(rrl, e->key.s.rtype);
^
rrl.c(1116): warning #188: enumerated type mixed with another type
return (ISC_R_SUCCESS);
^
--
CC libdns_la-zone.lo
zone.c(5814): warning #188: enumerated type mixed with another type
return (atomic_load_relaxed(&zone->options));
^
zone.c(20704): warning #188: enumerated type mixed with another type
param.hash = hash;
^
--
CC libdns_la-zoneverify.lo
zoneverify.c(1977): warning #3179: deprecated conversion of string literal to char* (should be const char*)
const char *keydesc = (secroots == NULL ? "self-signed" : "trusted");
^
--
CC libns_la-client.lo
client.c(1076): warning #1292: unknown attribute "nonstring"
unsigned char digest[ISC_MAX_MD_SIZE] ISC_NONSTRING = { 0 };
^
client.c(1089): warning #1292: unknown attribute "nonstring"
unsigned char input[16 + 16] ISC_NONSTRING = { 0 };
^
client.c(1124): warning #1292: unknown attribute "nonstring"
unsigned char input[4 + 4 + 16] ISC_NONSTRING = { 0 };
^
--
CC libns_la-query.lo
query.c(1211): warning #3179: deprecated conversion of string literal to char* (should be const char*)
str_blank = (*str != ' ' && *str != '\0') ? " " : "";
^
query.c(4574): warning #188: enumerated type mixed with another type
hash = 1;
^
--
CC libbind9_la-check.lo
check.c(1596): warning #188: enumerated type mixed with another type
enum { MAS = 1, PRI = 2, SLA = 4, SCN = 8 } values = 0;
^
check.c(1612): warning #188: enumerated type mixed with another type
values |= PRI;
^
check.c(1622): warning #188: enumerated type mixed with another type
values |= MAS;
^
check.c(1632): warning #188: enumerated type mixed with another type
values |= SCN;
^
check.c(1642): warning #188: enumerated type mixed with another type
values |= SLA;
^
--
CC server.o
server.c(3730): warning #188: enumerated type mixed with another type
fstrm_iothr_options_set_queue_model(fopt, i);
^
server.c(11139): warning #3179: deprecated conversion of string literal to char* (should be const char*)
sep = (ptr == NULL) ? "" : ": ";
^
--
CC statschannel.o
statschannel.c(115): warning #188: enumerated type mixed with another type
{ 0, NULL } };
^
--
CC dighost.lo
dighost.c(2831): warning #188: enumerated type mixed with another type
result = isc_socket_bind(query->sock, &bind_any, 0);
^
dighost.c(2934): warning #188: enumerated type mixed with another type
result = isc_socket_bind(query->sock, &bind_any, 0);
^
--
CC named-checkconf.o
named-checkconf.c(201): warning #188: enumerated type mixed with another type
zone_options = DNS_ZONEOPT_CHECKNS | DNS_ZONEOPT_MANYERRORS;
^
named-checkconf.c(299): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKDUPRR;
^
named-checkconf.c(300): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKDUPRRFAIL;
^
named-checkconf.c(302): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKDUPRR;
^
named-checkconf.c(303): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKDUPRRFAIL;
^
named-checkconf.c(305): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKDUPRR;
^
named-checkconf.c(306): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKDUPRRFAIL;
^
named-checkconf.c(312): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKDUPRR;
^
named-checkconf.c(313): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKDUPRRFAIL;
^
named-checkconf.c(319): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKMX;
^
named-checkconf.c(320): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKMXFAIL;
^
named-checkconf.c(322): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKMX;
^
named-checkconf.c(323): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKMXFAIL;
^
named-checkconf.c(325): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKMX;
^
named-checkconf.c(326): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKMXFAIL;
^
named-checkconf.c(332): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKMX;
^
named-checkconf.c(333): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKMXFAIL;
^
named-checkconf.c(339): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
^
named-checkconf.c(341): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKINTEGRITY;
^
named-checkconf.c(344): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
^
named-checkconf.c(350): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNMXCNAME;
^
named-checkconf.c(351): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNOREMXCNAME;
^
named-checkconf.c(353): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_WARNMXCNAME;
^
named-checkconf.c(354): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNOREMXCNAME;
^
named-checkconf.c(356): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNMXCNAME;
^
named-checkconf.c(357): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_IGNOREMXCNAME;
^
named-checkconf.c(363): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNMXCNAME;
^
named-checkconf.c(364): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNOREMXCNAME;
^
named-checkconf.c(370): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNSRVCNAME;
^
named-checkconf.c(371): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNORESRVCNAME;
^
named-checkconf.c(373): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_WARNSRVCNAME;
^
named-checkconf.c(374): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNORESRVCNAME;
^
named-checkconf.c(376): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNSRVCNAME;
^
named-checkconf.c(377): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_IGNORESRVCNAME;
^
named-checkconf.c(383): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNSRVCNAME;
^
named-checkconf.c(384): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNORESRVCNAME;
^
named-checkconf.c(390): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKSIBLING;
^
named-checkconf.c(392): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
^
named-checkconf.c(399): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKSPF;
^
named-checkconf.c(401): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKSPF;
^
named-checkconf.c(407): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKSPF;
^
named-checkconf.c(413): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNAMES;
^
named-checkconf.c(414): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKNAMESFAIL;
^
named-checkconf.c(416): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNAMES;
^
named-checkconf.c(417): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNAMESFAIL;
^
named-checkconf.c(419): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKNAMES;
^
named-checkconf.c(420): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKNAMESFAIL;
^
named-checkconf.c(426): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNAMES;
^
named-checkconf.c(427): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNAMESFAIL;
^
named-checkconf.c(449): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKTTL;
^
--
CC check-tool.lo
check-tool.c(93): warning #188: enumerated type mixed with another type
dns_zoneopt_t zone_options = DNS_ZONEOPT_CHECKNS | DNS_ZONEOPT_CHECKMX |
^
check-tool.c(760): warning #3179: deprecated conversion of string literal to char* (should be const char*)
flags = (fileformat == dns_masterformat_text) ? "w" : "wb";
^
--
CC named-checkzone.o
named-checkzone.c(155): warning #188: enumerated type mixed with another type
zone_options |= (DNS_ZONEOPT_CHECKNS | DNS_ZONEOPT_FATALNS |
^
named-checkzone.c(161): warning #188: enumerated type mixed with another type
zone_options |= (DNS_ZONEOPT_CHECKDUPRR | DNS_ZONEOPT_CHECKSPF);
^
named-checkzone.c(183): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY |
^
named-checkzone.c(189): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
^
named-checkzone.c(190): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
^
named-checkzone.c(195): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
^
named-checkzone.c(196): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKSIBLING;
^
named-checkzone.c(201): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKINTEGRITY;
^
named-checkzone.c(202): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
^
named-checkzone.c(207): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKINTEGRITY;
^
named-checkzone.c(208): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKSIBLING;
^
named-checkzone.c(238): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNAMES;
^
named-checkzone.c(239): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKNAMESFAIL;
^
named-checkzone.c(241): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNAMES |
^
named-checkzone.c(244): warning #188: enumerated type mixed with another type
zone_options &= ~(DNS_ZONEOPT_CHECKNAMES |
^
named-checkzone.c(265): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKTTL;
^
named-checkzone.c(277): warning #188: enumerated type mixed with another type
zone_options &= ~(DNS_ZONEOPT_CHECKNS |
^
named-checkzone.c(280): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNS;
^
named-checkzone.c(281): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_FATALNS;
^
named-checkzone.c(283): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKNS |
^
named-checkzone.c(294): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKMX;
^
named-checkzone.c(295): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKMXFAIL;
^
named-checkzone.c(297): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKMX |
^
named-checkzone.c(300): warning #188: enumerated type mixed with another type
zone_options &= ~(DNS_ZONEOPT_CHECKMX |
^
named-checkzone.c(319): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKDUPRR;
^
named-checkzone.c(320): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKDUPRRFAIL;
^
named-checkzone.c(322): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKDUPRR |
^
named-checkzone.c(325): warning #188: enumerated type mixed with another type
zone_options &= ~(DNS_ZONEOPT_CHECKDUPRR |
^
named-checkzone.c(371): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_WARNMXCNAME;
^
named-checkzone.c(372): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNOREMXCNAME;
^
named-checkzone.c(374): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNMXCNAME;
^
named-checkzone.c(375): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNOREMXCNAME;
^
named-checkzone.c(377): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNMXCNAME;
^
named-checkzone.c(378): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_IGNOREMXCNAME;
^
named-checkzone.c(388): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_WARNSRVCNAME;
^
named-checkzone.c(389): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNORESRVCNAME;
^
named-checkzone.c(391): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNSRVCNAME;
^
named-checkzone.c(392): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_IGNORESRVCNAME;
^
named-checkzone.c(394): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_WARNSRVCNAME;
^
named-checkzone.c(395): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_IGNORESRVCNAME;
^
named-checkzone.c(405): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKSPF;
^
named-checkzone.c(407): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKSPF;
^
named-checkzone.c(417): warning #188: enumerated type mixed with another type
zone_options |= DNS_ZONEOPT_CHECKWILDCARD;
^
named-checkzone.c(419): warning #188: enumerated type mixed with another type
zone_options &= ~DNS_ZONEOPT_CHECKWILDCARD;
^
--
CC tsig-keygen.o
tsig-keygen.c(228): warning #3179: deprecated conversion of string literal to char* (should be const char*)
: CONFGEN_DEFAULT);
^
```
Check:
```
CC socket_test.o
socket_test.c(192): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s1, &addr1, 0);
^
socket_test.c(200): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s2, &addr2, 0);
^
socket_test.c(250): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s1, &addr1, 0);
^
socket_test.c(258): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s2, &addr2, 0);
^
socket_test.c(363): warning #188: enumerated type mixed with another type
socketevent->attributes |= ISC_SOCKEVENTATTR_DSCP;
^
socket_test.c(367): warning #188: enumerated type mixed with another type
socketevent->attributes &= ~ISC_SOCKEVENTATTR_DSCP;
^
socket_test.c(420): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s1, &addr1, 0);
^
socket_test.c(429): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s2, &addr2, 0);
^
socket_test.c(500): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s1, &addr1, 0);
^
socket_test.c(587): warning #188: enumerated type mixed with another type
result = isc_socket_bind(s1, &addr1, 0);
^
--
CC dispatch_test.o
dispatch_test.c(291): warning #188: enumerated type mixed with another type
result = isc_socket_bind(sock, &local, 0);
^
--
CC private_test.o
private_test.c(119): warning #188: enumerated type mixed with another type
params.hash = testcase->hash;
^
CC sigs_test.o
sigs_test.c(329): warning #188: enumerated type mixed with another type
ZONECHANGE_SENTINEL,
^
sigs_test.c(336): warning #188: enumerated type mixed with another type
ZONEDIFF_SENTINEL,
^
sigs_test.c(347): warning #188: enumerated type mixed with another type
ZONECHANGE_SENTINEL,
^
sigs_test.c(354): warning #188: enumerated type mixed with another type
ZONEDIFF_SENTINEL,
^
sigs_test.c(365): warning #188: enumerated type mixed with another type
ZONECHANGE_SENTINEL,
^
sigs_test.c(372): warning #188: enumerated type mixed with another type
ZONEDIFF_SENTINEL,
^
sigs_test.c(382): warning #188: enumerated type mixed with another type
ZONECHANGE_SENTINEL,
^
sigs_test.c(387): warning #188: enumerated type mixed with another type
ZONEDIFF_SENTINEL,
^
sigs_test.c(400): warning #188: enumerated type mixed with another type
ZONECHANGE_SENTINEL,
^
sigs_test.c(410): warning #188: enumerated type mixed with another type
ZONEDIFF_SENTINEL,
^
--
CC dnstap_test-dnstap_test.o
dnstap_test.c(123): warning #188: enumerated type mixed with another type
result = dns_dt_create(dt_mctx, 33, TAPSOCK, &fopt, NULL, &dtenv);
^
--
CC zt_test.o
zt_test.c(201): warning #2332: a value of type "atomic_bool={_Atomic(_Bool)} *" cannot be assigned to an entity of type "void *" (dropping qualifiers)
args.arg2 = &done;
^
zt_test.c(223): warning #2332: a value of type "atomic_bool={_Atomic(_Bool)} *" cannot be assigned to an entity of type "void *" (dropping qualifiers)
args.arg2 = &done;
^
zt_test.c(240): warning #2332: a value of type "atomic_bool={_Atomic(_Bool)} *" cannot be assigned to an entity of type "void *" (dropping qualifiers)
args.arg2 = &done;
^
zt_test.c(316): warning #2332: a value of type "atomic_bool={_Atomic(_Bool)} *" cannot be assigned to an entity of type "void *" (dropping qualifiers)
args.arg2 = &done;
^
--
CC nstest.lo
nstest.c(97): warning #188: enumerated type mixed with another type
client->state = 4;
^
--
```
`ns_listenlist_default_test` and a lot of system tests fail with:
```
[ RUN ] ns_listenlist_default_test
netmgr/netmgr.c:694: REQUIRE(target != ((void*)0) && *target == ((void*)0)) failed, back trace
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(+0x2ec7d) [0x7fc5ec0ffc7d]
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(isc_assertion_failed+0x7) [0x7fc5ec0ffd45]
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(isc__nmsocket_attach+0x56) [0x7fc5ec0ea61c]
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(isc__nm_tcp_stoplistening+0x52) [0x7fc5ec0edb0c]
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(isc__nm_tcpdns_stoplistening+0x63) [0x7fc5ec0eea38]
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(isc_nm_stoplistening+0x6e) [0x7fc5ec0eb674]
/home/newman/isc/ws/bind9/lib/ns/.libs/libns.so.1703(ns_interface_shutdown+0x33) [0x7fc5ebea5c2d]
/home/newman/isc/ws/bind9/lib/ns/.libs/libns.so.1703(+0x15925) [0x7fc5ebea5925]
/home/newman/isc/ws/bind9/lib/ns/tests/.libs/lt-listenlist_test() [0x403d69]
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(+0x49793) [0x7fc5ec11a793]
/home/newman/isc/ws/bind9/lib/isc/.libs/libisc.so.1703(+0x49249) [0x7fc5ec11a249]
/lib64/libpthread.so.0(+0x9432) [0x7fc5eb6b2432]
/lib64/libc.so.6(clone+0x43) [0x7fc5eb5e0913]
./../../unit-test-driver.sh: line 13: 528599 Aborted (core dumped) "${TEST_PROGRAM}"
```Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2048Compiler warnings identified by Oracle Developer Studio2023-11-02T16:26:05ZMichal NowakCompiler warnings identified by Oracle Developer StudioI compiled BIND `main` (a14445d472e6287a3bbf7208cb2c7cdba0704be4) with [Oracle Developer Studio](https://www.oracle.com/application-development/technologies/developerstudio.html) 12.6 (`Studio 12.6 Sun C 5.15 Linux_i386 2017/05/30`) on F...I compiled BIND `main` (a14445d472e6287a3bbf7208cb2c7cdba0704be4) with [Oracle Developer Studio](https://www.oracle.com/application-development/technologies/developerstudio.html) 12.6 (`Studio 12.6 Sun C 5.15 Linux_i386 2017/05/30`) on Fedora 32 and it produced a bunch of warnings and few errors.
Compilation commands:
```
autoreconf -fi && CC=/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc CFLAGS="-O1 -g -Wall -Wextra" ./configure --disable-maintainer-mode --with-libtool --disable-static --with-cmocka --with-libxml2 --with-json-c --prefix=$HOME/.local --without-make-clean --with-python=python3 --enable-dnstap --with-libidn2 && make -j12 V=1
```
I disabled following GCC options for the Studio output to be cleaner as they produces a lot of warnings:
```
cc: Warning: Option -fno-delete-null-pointer-checks passed to ld, if ld is invoked, ignored otherwise
cc: Warning: Option -fdiagnostics-show-option passed to ld, if ld is invoked, ignored otherwise
"/usr/include/features.h", line 397: #warning: _FORTIFY_SOURCE requires compiling with optimization (-O)
```
```patch
diff --git a/configure.ac b/configure.ac
index a32fb68f18..5d7f93d8f9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -137,7 +137,7 @@ STD_CFLAGS="-Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missi
STD_CFLAGS="$STD_CFLAGS -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes"
# Fortify the sources by default
-STD_CPPFLAGS="-D_FORTIFY_SOURCE=2"
+#STD_CPPFLAGS="-D_FORTIFY_SOURCE=2"
#
# Additional compiler settings.
@@ -145,10 +145,10 @@ STD_CPPFLAGS="-D_FORTIFY_SOURCE=2"
AX_CHECK_COMPILE_FLAG([-fno-strict-aliasing],
[STD_CFLAGS="$STD_CFLAGS -fno-strict-aliasing"])
# Clang only issues a warning so use -Werror to force a error.
-AX_CHECK_COMPILE_FLAG([-Werror -fno-delete-null-pointer-checks],
- [STD_CFLAGS="$STD_CFLAGS -fno-delete-null-pointer-checks"])
-AX_CHECK_COMPILE_FLAG([-fdiagnostics-show-option],
- [STD_CFLAGS="$STD_CFLAGS -fdiagnostics-show-option"])
+#AX_CHECK_COMPILE_FLAG([-Werror -fno-delete-null-pointer-checks],
+# [STD_CFLAGS="$STD_CFLAGS -fno-delete-null-pointer-checks"])
+#AX_CHECK_COMPILE_FLAG([-fdiagnostics-show-option],
+# [STD_CFLAGS="$STD_CFLAGS -fdiagnostics-show-option"])
#
# Change defaults for developers if not explicity set.
```
I had to manually undef `HAVE_BUILTIN_EXPECT` via `sed -i -e '/HAVE_BUILTIN_EXPECT/s/.*/#undef HAVE_BUILTIN_EXPECT/' config.h`, otherwise I get a lot of lines like this: `"radix.c", line 78: internal compiler error: __builtin_expect undefined`:
```
checking compiler support for __builtin_unreachable()... no
checking compiler support for __builtin_expect... yes
checking compiler support for __builtin_clz... no
```
Studio's `acomp` binary (a preprocessor) crashes on some input files (this may be fixed in Studio production patches we don't have access to):
```
/bin/sh ../../libtool --tag=CC --mode=compile /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o libdns_la-peer.lo `test -f 'peer.c' || echo './'`peer.c
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c peer.c -KPIC -DPIC -o .libs/libdns_la-peer.o
cc: Fatal error in /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/lib/compilers/bin/acomp : Signal number = 139
```
Full list of warnings and errors detected:
```
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c pk11.c -KPIC -DPIC -o .libs/libisc_la-pk11.o
"pk11.c", line 881: warning: statement not reached
"pk11.c", line 885: warning: statement not reached
"pk11.c", line 909: warning: statement not reached
"pk11.c", line 915: warning: statement not reached
"pk11.c", line 919: warning: statement not reached
"pk11.c", line 984: warning: statement not reached
"pk11.c", line 990: warning: statement not reached
"pk11.c", line 994: warning: statement not reached
"pk11.c", line 1010: warning: statement not reached
"pk11.c", line 1019: warning: statement not reached
"pk11.c", line 1026: warning: statement not reached
"pk11.c", line 1039: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c md.c -KPIC -DPIC -o .libs/libisc_la-md.o
"md.c", line 168: warning: syntax error: empty declaration
"md.c", line 169: warning: syntax error: empty declaration
"md.c", line 170: warning: syntax error: empty declaration
"md.c", line 171: warning: syntax error: empty declaration
"md.c", line 172: warning: syntax error: empty declaration
"md.c", line 173: warning: syntax error: empty declaration
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c unix/socket.c -KPIC -DPIC -o unix/.libs/libisc_la-socket.o
"unix/socket.c", line 4755: warning: statement not reached
"unix/socket.c", line 4756: warning: statement not reached
"unix/socket.c", line 4757: warning: statement not reached
"unix/socket.c", line 4758: warning: statement not reached
"unix/socket.c", line 4759: warning: statement not reached
"unix/socket.c", line 4761: warning: statement not reached
"unix/socket.c", line 4763: warning: statement not reached
"unix/socket.c", line 4764: warning: statement not reached
"unix/socket.c", line 4765: warning: statement not reached
"unix/socket.c", line 4766: warning: statement not reached
"unix/socket.c", line 4767: warning: statement not reached
"unix/socket.c", line 4768: warning: statement not reached
"unix/socket.c", line 4772: warning: statement not reached
"unix/socket.c", line 4900: warning: statement not reached
"unix/socket.c", line 4901: warning: statement not reached
"unix/socket.c", line 4902: warning: statement not reached
"unix/socket.c", line 4903: warning: statement not reached
"unix/socket.c", line 4904: warning: statement not reached
"unix/socket.c", line 4906: warning: statement not reached
"unix/socket.c", line 4908: warning: statement not reached
"unix/socket.c", line 4909: warning: statement not reached
"unix/socket.c", line 4910: warning: statement not reached
"unix/socket.c", line 4911: warning: statement not reached
"unix/socket.c", line 4912: warning: statement not reached
"unix/socket.c", line 4913: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c pthreads/thread.c -KPIC -DPIC -o pthreads/.libs/libisc_la-thread.o
"pthreads/thread.c", line 61: warning: statement not reached
"pthreads/thread.c", line 67: warning: statement not reached
"pthreads/thread.c", line 75: warning: statement not reached
"pthreads/thread.c", line 87: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c dst_api.c -KPIC -DPIC -o .libs/libdns_la-dst_api.o
"dst_api.c", line 1550: warning: statement not reached
"dst_api.c", line 1557: warning: statement not reached
"dst_api.c", line 1573: warning: statement not reached
"dst_api.c", line 1583: warning: statement not reached
"dst_api.c", line 1592: warning: statement not reached
"dst_api.c", line 1600: warning: statement not reached
"dst_api.c", line 1706: warning: statement not reached
"dst_api.c", line 1713: warning: statement not reached
"dst_api.c", line 1725: warning: statement not reached
"dst_api.c", line 1732: warning: statement not reached
"dst_api.c", line 1748: warning: statement not reached
"dst_api.c", line 1758: warning: statement not reached
"dst_api.c", line 1772: warning: statement not reached
"dst_api.c", line 1780: warning: statement not reached
"dst_api.c", line 1794: warning: statement not reached
"dst_api.c", line 1815: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c hmac_link.c -KPIC -DPIC -o .libs/libdns_la-hmac_link.o
"hmac_link.c", line 511: warning: syntax error: empty declaration
"hmac_link.c", line 512: warning: syntax error: empty declaration
"hmac_link.c", line 513: warning: syntax error: empty declaration
"hmac_link.c", line 514: warning: syntax error: empty declaration
"hmac_link.c", line 515: warning: syntax error: empty declaration
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c openssldh_link.c -KPIC -DPIC -o .libs/libdns_la-openssldh_link.o
"openssldh_link.c", line 678: warning: statement not reached
"openssldh_link.c", line 683: warning: statement not reached
"openssldh_link.c", line 693: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../../../../.. -include ../../../../../config.h -I./include -I../../../../../include -I../../../../../lib/isc/unix/include -I../../../../../lib/isc/pthreads/include -I../../../../../lib/isc/include -I../../../../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../../../../lib/dns/include -I../../../../../lib/dns/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c zone.c -KPIC -DPIC -o .libs/zone.o
"zone.c", line 127: warning: end-of-loop code not reached
"zone.c", line 137: warning: end-of-loop code not reached
"zone.c", line 145: warning: end-of-loop code not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../../../../.. -include ../../../../../config.h -I./include -I../../../../../include -I../../../../../lib/isc/unix/include -I../../../../../lib/isc/pthreads/include -I../../../../../lib/isc/include -I../../../../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../../../../lib/dns/include -I../../../../../lib/dns/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c syncptr.c -KPIC -DPIC -o .libs/syncptr.o
"syncptr.c", line 134: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../../../../.. -include ../../../../../config.h -I./include -I../../../../../include -I../../../../../lib/isc/unix/include -I../../../../../lib/isc/pthreads/include -I../../../../../lib/isc/include -I../../../../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../../../../lib/dns/include -I../../../../../lib/dns/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c db.c -KPIC -DPIC -o .libs/db.o
"db.c", line 112: warning: statement not reached
"db.c", line 128: warning: statement not reached
"db.c", line 151: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DRNDC_KEYFILE=\"/home/newman/.local/etc/rndc.key\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o rndc-confgen.o rndc-confgen.c
"rndc-confgen.c", line 174: warning: statement not reached
"rndc-confgen.c", line 200: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DRNDC_KEYFILE=\"/home/newman/.local/etc/rndc.key\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o tsig-keygen.o tsig-keygen.c
"tsig-keygen.c", line 174: warning: statement not reached
"tsig-keygen.c", line 197: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/isccfg/include -I../../lib/irs/include -I../../lib/bind9/include -DSESSION_KEYFILE=\"/home/newman/.local/var/run/named/session.key\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o nsupdate.o nsupdate.c
"nsupdate.c", line 1234: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/bind9/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o mdig-mdig.o `test -f 'mdig.c' || echo './'`mdig.c
"mdig.c", line 1691: warning: statement not reached
"mdig.c", line 1702: warning: statement not reached
"mdig.c", line 1708: warning: statement not reached
"mdig.c", line 1720: warning: statement not reached
"mdig.c", line 1810: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DNAMED_CONFFILE=\"/home/newman/.local/etc/named.conf\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o dnssec-signzone.o dnssec-signzone.c
"dnssec-signzone.c", line 463: warning: statement not reached
"dnssec-signzone.c", line 3487: warning: statement not reached
"dnssec-signzone.c", line 3529: warning: statement not reached
"dnssec-signzone.c", line 3541: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DNAMED_CONFFILE=\"/home/newman/.local/etc/named.conf\" -I../../lib/isccfg/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o dnssec_keygen-dnssec-keygen.o `test -f 'dnssec-keygen.c' || echo './'`dnssec-keygen.c
"dnssec-keygen.c", line 1017: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DNAMED_CONFFILE=\"/home/newman/.local/etc/named.conf\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o dnssec-keyfromlabel.o dnssec-keyfromlabel.c
"dnssec-keyfromlabel.c", line 645: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DNAMED_CONFFILE=\"/home/newman/.local/etc/named.conf\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o dnssec-dsfromkey.o dnssec-dsfromkey.c
"dnssec-dsfromkey.c", line 424: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DNAMED_CONFFILE=\"/home/newman/.local/etc/named.conf\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c dnssectool.c -KPIC -DPIC -o .libs/dnssectool.o
"dnssectool.c", line 222: warning: statement not reached
"dnssectool.c", line 240: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -DNAMED_CONFFILE=\"/home/newman/.local/etc/named.conf\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o dnssec-cds.o dnssec-cds.c
"dnssec-cds.c", line 1122: warning: statement not reached
"dnssec-cds.c", line 1131: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/isccfg/include -I../../lib/irs/include -I../../lib/bind9/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o host.o host.c
"host.c", line 665: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/isccfg/include -I../../lib/irs/include -I../../lib/bind9/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o dig.o dig.c
"dig.c", line 1889: warning: statement not reached
"dig.c", line 1899: warning: statement not reached
"dig.c", line 1916: warning: statement not reached
"dig.c", line 1936: warning: statement not reached
"dig.c", line 2150: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/isccfg/include -I../../lib/isccc/include/ -I../../lib/bind9/include -DRNDC_CONFFILE=\"/home/newman/.local/etc/rndc.conf\" -DRNDC_KEYFILE=\"/home/newman/.local/etc/rndc.key\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o rndc.o rndc.c
"rndc.c", line 980: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I./unix/include -I../../include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/ns/include -I../../lib/isccc/include/ -I../../lib/isccfg/include -I../../lib/bind9/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -DNAMED_LOCALSTATEDIR=\"/home/newman/.local/var\" -DNAMED_SYSCONFDIR=\"/home/newman/.local/etc\" -DMAXMINDDB_PREFIX=\"/usr\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o unix/os.o unix/os.c
"unix/os.c", line 193: warning: statement not reached
"unix/os.c", line 226: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I./unix/include -I../../include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/ns/include -I../../lib/isccc/include/ -I../../lib/isccfg/include -I../../lib/bind9/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -DNAMED_LOCALSTATEDIR=\"/home/newman/.local/var\" -DNAMED_SYSCONFDIR=\"/home/newman/.local/etc\" -DMAXMINDDB_PREFIX=\"/usr\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o server.o server.c
"server.c", line 830: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I./unix/include -I../../include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/ns/include -I../../lib/isccc/include/ -I../../lib/isccfg/include -I../../lib/bind9/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -DNAMED_LOCALSTATEDIR=\"/home/newman/.local/var\" -DNAMED_SYSCONFDIR=\"/home/newman/.local/etc\" -DMAXMINDDB_PREFIX=\"/usr\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o main.o main.c
"/usr/include/maxminddb.h", line 92: syntax error before or at: mmdb_uint128_t
"/usr/include/maxminddb.h", line 122: syntax error before or at: mmdb_uint128_t
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/irs/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o nsprobe.o nsprobe.c
"nsprobe.c", line 1074: warning: statement not reached
"nsprobe.c", line 1080: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/isccfg/include -I../../lib/ns/include -I../../lib/bind9/include -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c check.c -KPIC -DPIC -o .libs/libbind9_la-check.o
"check.c", line 497: warning: const object should have initializer: zeros
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c opensslrsa_link.c -KPIC -DPIC -o .libs/libdns_la-opensslrsa_link.o
"opensslrsa_link.c", line 595: warning: statement not reached
"opensslrsa_link.c", line 601: warning: statement not reached
"opensslrsa_link.c", line 609: warning: statement not reached
"opensslrsa_link.c", line 892: warning: statement not reached
"opensslrsa_link.c", line 895: warning: statement not reached
"opensslrsa_link.c", line 929: warning: statement not reached
"opensslrsa_link.c", line 933: warning: statement not reached
"opensslrsa_link.c", line 939: warning: statement not reached
"opensslrsa_link.c", line 945: warning: statement not reached
"opensslrsa_link.c", line 948: warning: statement not reached
"opensslrsa_link.c", line 952: warning: statement not reached
"opensslrsa_link.c", line 970: warning: statement not reached
"opensslrsa_link.c", line 975: warning: statement not reached
"opensslrsa_link.c", line 978: warning: statement not reached
"opensslrsa_link.c", line 993: warning: statement not reached
"opensslrsa_link.c", line 1058: warning: statement not reached
"opensslrsa_link.c", line 1061: warning: statement not reached
"opensslrsa_link.c", line 1100: warning: statement not reached
"opensslrsa_link.c", line 1104: warning: statement not reached
"opensslrsa_link.c", line 1111: warning: statement not reached
"opensslrsa_link.c", line 1117: warning: statement not reached
"opensslrsa_link.c", line 1123: warning: statement not reached
"opensslrsa_link.c", line 1126: warning: statement not reached
"opensslrsa_link.c", line 1130: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c openssleddsa_link.c -KPIC -DPIC -o .libs/libdns_la-openssleddsa_link.o
"openssleddsa_link.c", line 182: warning: statement not reached
"openssleddsa_link.c", line 189: warning: statement not reached
"openssleddsa_link.c", line 194: warning: statement not reached
"openssleddsa_link.c", line 247: warning: statement not reached
"openssleddsa_link.c", line 330: warning: statement not reached
"openssleddsa_link.c", line 336: warning: statement not reached
"openssleddsa_link.c", line 523: warning: statement not reached
"openssleddsa_link.c", line 526: warning: statement not reached
"openssleddsa_link.c", line 561: warning: statement not reached
"openssleddsa_link.c", line 563: warning: statement not reached
"openssleddsa_link.c", line 567: warning: statement not reached
"openssleddsa_link.c", line 578: warning: statement not reached
"openssleddsa_link.c", line 631: warning: statement not reached
"openssleddsa_link.c", line 636: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c opensslecdsa_link.c -KPIC -DPIC -o .libs/libdns_la-opensslecdsa_link.o
"opensslecdsa_link.c", line 174: warning: statement not reached
"opensslecdsa_link.c", line 179: warning: statement not reached
"opensslecdsa_link.c", line 185: warning: statement not reached
"opensslecdsa_link.c", line 234: warning: statement not reached
"opensslecdsa_link.c", line 239: warning: statement not reached
"opensslecdsa_link.c", line 288: warning: statement not reached
"opensslecdsa_link.c", line 290: warning: statement not reached
"opensslecdsa_link.c", line 295: warning: statement not reached
"opensslecdsa_link.c", line 302: warning: statement not reached
"opensslecdsa_link.c", line 305: warning: statement not reached
"opensslecdsa_link.c", line 348: warning: statement not reached
"opensslecdsa_link.c", line 353: warning: statement not reached
"opensslecdsa_link.c", line 357: warning: statement not reached
"opensslecdsa_link.c", line 411: warning: statement not reached
"opensslecdsa_link.c", line 415: warning: statement not reached
"opensslecdsa_link.c", line 466: warning: statement not reached
"opensslecdsa_link.c", line 469: warning: statement not reached
"opensslecdsa_link.c", line 474: warning: statement not reached
"opensslecdsa_link.c", line 478: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c client.c -KPIC -DPIC -o .libs/libdns_la-client.o
"client.c", line 2939: warning: argument #2 is incompatible with prototype:
prototype: pointer to void : "../../lib/isc/include/isc/event.h", line 86
argument : pointer to function(pointer to struct dns_client {unsigned int magic, unsigned int attributes, union {..} lock, pointer to struct isc_mem {..} mctx, pointer to struct isc_appctx {..} actx, pointer to struct isc_taskmgr {..} taskmgr, pointer to struct isc_task {..} task, pointer to struct isc_socketmgr {..} socketmgr, pointer to struct isc_timermgr {..} timermgr, pointer to struct dns_dispatchmgr {..} dispatchmgr, pointer to struct dns_dispatch {..} dispatchv4, pointer to struct dns_dispatch {..} dispatchv6, unsigned int update_timeout, unsigned int update_udptimeout, unsigned int update_udpretries, unsigned int find_timeout, unsigned int find_udpretries, atomic unsigned long references, struct {..} viewlist, struct {..} resctxs, struct {..} reqctxs, struct {..} updatectxs}, unsigned short, pointer to const struct dns_name {unsigned int magic, pointer to unsigned char ndata, unsigned int length, unsigned int labels, unsigned int attributes, pointer to unsigned char offsets, pointer to struct isc_buffer {..} buffer, struct {..} link, struct {..} list}, pointer to struct {pointer to struct dns_name {..} head, pointer to struct dns_name {..} tail}, pointer to struct {pointer to struct dns_name {..} head, pointer to struct dns_name {..} tail}, pointer to struct {pointer to struct isc_sockaddr {..} head, pointer to struct isc_sockaddr {..} tail}, pointer to struct dns_tsec {}, unsigned int, pointer to struct isc_task {unsigned int impmagic, unsigned int magic}, pointer to function(..) returning void, pointer to void, pointer to pointer to void) returning unsigned int
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c zone.c -KPIC -DPIC -o .libs/libdns_la-zone.o
"zone.c", line 500: warning: enumerator value overflows INT_MAX (2147483647)
"zone.c", line 5711: internal compiler error: NAME with no symbol table entry
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c sdlz.c -KPIC -DPIC -o .libs/libdns_la-sdlz.o
"sdlz.c", line 739: warning: Function has no return statement : expirenode
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c sdb.c -KPIC -DPIC -o .libs/libdns_la-sdb.o
"sdb.c", line 1072: warning: Function has no return statement : expirenode
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c rpz.c -KPIC -DPIC -o .libs/libdns_la-rpz.o
"rpz.c", line 215: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c rdata.c -KPIC -DPIC -o .libs/libdns_la-rdata.o
"rdata/generic/amtrelay_260.c", line 295: warning: statement not reached
"rdata/generic/amtrelay_260.c", line 300: warning: statement not reached
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c rbtdb.c -KPIC -DPIC -o .libs/libdns_la-rbtdb.o
"rbtdb.c", line 4514: warning: statement not reached
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I./unix/include -I../../include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/ns/include -I../../lib/isccc/include/ -I../../lib/isccfg/include -I../../lib/bind9/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -DNAMED_LOCALSTATEDIR=\"/home/newman/.local/var\" -DNAMED_SYSCONFDIR=\"/home/newman/.local/etc\" -DMAXMINDDB_PREFIX=\"/usr\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o main.o main.c
"/usr/include/maxminddb.h", line 92: syntax error before or at: mmdb_uint128_t
"/usr/include/maxminddb.h", line 122: syntax error before or at: mmdb_uint128_t
cc: acomp failed for main.c
/home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I./unix/include -I../../include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../lib/ns/include -I../../lib/isccc/include/ -I../../lib/isccfg/include -I../../lib/bind9/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -DNAMED_LOCALSTATEDIR=\"/home/newman/.local/var\" -DNAMED_SYSCONFDIR=\"/home/newman/.local/etc\" -DMAXMINDDB_PREFIX=\"/usr\" -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c -o geoip.o geoip.c
"/usr/include/maxminddb.h", line 92: syntax error before or at: mmdb_uint128_t
"/usr/include/maxminddb.h", line 122: syntax error before or at: mmdb_uint128_t
cc: acomp failed for geoip.c
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c geoip2.c -KPIC -DPIC -o .libs/libdns_la-geoip2.o
"/usr/include/maxminddb.h", line 92: syntax error before or at: mmdb_uint128_t
"/usr/include/maxminddb.h", line 122: syntax error before or at: mmdb_uint128_t
"geoip2.c", line 202: improper member use: utf8_string
"geoip2.c", line 207: improper member use: utf8_string
"geoip2.c", line 219: improper member use: uint32
cc: acomp failed for geoip2.c
libtool: compile: /home/newman/Downloads/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/cc -DHAVE_CONFIG_H -I. -I../.. -include ../../config.h -I./include -I../../include -I../../lib/isc/unix/include -I../../lib/isc/pthreads/include -I../../lib/isc/include -I../../lib/isc/include -I/usr/include/json-c -I/usr/include/libxml2 -I../../lib/dns/include -I../../lib/dns/include -I../../libltdl -I/usr/include/json-c -I/usr/include/libxml2 -Wall -Wextra -Wwrite-strings -Wcast-qual -Wpointer-arith -Wno-missing-field-initializers -Wformat -Wshadow -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=format-security -Werror=parentheses -Werror=implicit -Werror=strict-prototypes -fno-strict-aliasing -O1 -g -Wall -Wextra -mt -c zone.c -KPIC -DPIC -o .libs/libdns_la-zone.o
"zone.c", line 500: warning: enumerator value overflows INT_MAX (2147483647)
"zone.c", line 5711: internal compiler error: NAME with no symbol table entry
```
If these warnings are believed to be meaningfull, we may run Studio on the rest of maintained branches and more offen and, eventually, integrate it to the CI.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/3868tests require python 3.6 but configure allows python 22023-02-16T10:05:19ZEvan Hunttests require python 3.6 but configure allows python 2The `get_algorithms.py` script used in the system tests to choose signing algorithms for tests uses a python feature, dataclasses, which I believe did not exist until version 3.7.
I have a system that has both python2 and python3 instal...The `get_algorithms.py` script used in the system tests to choose signing algorithms for tests uses a python feature, dataclasses, which I believe did not exist until version 3.7.
I have a system that has both python2 and python3 installed. When building 9.18 or main, `configure` finds python3 and everything works fine, but on 9.16, it will use python2 instead, because the required minimum version is 2.7. System tests will then refuse to run:
```
File "/home/each/isc/bind9/bin/tests/system/get_algorithms.py", line 36
name: str
^
SyntaxError: invalid syntax
```
(In 9.18 and main, the minimum version is 3.6, and I suspect the dataclass will also be a problem there, but my own system has 3.8 so I haven't confirmed it.)
The easy solution would be to bump up the version requirement in all branches to python 3.7. If this is fraught in 9.16 because it's a stable branch, we could also just revert `get_algorithms.py` out of that branch.Known issues with current versionshttps://gitlab.isc.org/isc-projects/bind9/-/issues/3393upforwd test failure: "checking DNSTAP logging of UPDATE forwarded update rep...2022-06-07T12:28:57ZArаm Sаrgsyаnupforwd test failure: "checking DNSTAP logging of UPDATE forwarded update replies" mismatchhttps://gitlab.isc.org/isc-projects/bind9/-/jobs/2555471
```
...
...
I:upforwd:checking update forwarding to dead primary (14)
I:upforwd:checking DNSTAP logging of UPDATE forwarded update replies (15)
I:upforwd:UQ=5 UR=0
I:upforwd:check...https://gitlab.isc.org/isc-projects/bind9/-/jobs/2555471
```
...
...
I:upforwd:checking update forwarding to dead primary (14)
I:upforwd:checking DNSTAP logging of UPDATE forwarded update replies (15)
I:upforwd:UQ=5 UR=0
I:upforwd:checking update forwarding to with sig0 (16)
I:upforwd:checking DNSTAP logging of UPDATE forwarded update replies (17)
I:upforwd:UQ=14 UR=1
I:upforwd:failed
I:upforwd:exit status: 1
I:upforwd:stopping servers
```
This failure happened in a branch based on `v9_16`, so I'm setting only the ~"Affects v9.16" label at this moment.
The log files are attached.
[upforwd.tar.gz](/uploads/5600d1e3da02749e5b334a57222d91c5/upforwd.tar.gz)Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/3044'recursing clients' counter in stats is still underflowing on BIND 9.16.23-S12021-12-07T11:47:20ZCathy Almond'recursing clients' counter in stats is still underflowing on BIND 9.16.23-S1As reported in [Support ticket #19917](https://support.isc.org/Ticket/Display.html?id=19917)
For example:
```
4294445023 recursing clients
```
We seem to have addressed some causes of this anomaly in earlier versions of BIND ...As reported in [Support ticket #19917](https://support.isc.org/Ticket/Display.html?id=19917)
For example:
```
4294445023 recursing clients
```
We seem to have addressed some causes of this anomaly in earlier versions of BIND (#1078, #1719), but it is definitely still a problem.
There was one hypothesis that this might be related to DNS64 - however, no sign of DNS64 in this named.conf.
I would like to suggest that it might be due to one (or all) of:
- prefetch (it'd be easy to turn this off to confirm?)
- RPZ (yes, they have all of `nsip-wait-recurse no` and `qname-wait-recurse no` but whether or not additional recursion takes place is determined also by the actual policies in the policy zones themselves)
- Something awry with TCP socket handling?
- Something whacky with the interaction with serve-stale? (Although this is a default config., so `stale-cache-enable yes;`, `stale-answer-enable no;`.
No fetch-limits in this configuration, but if it was purely fetch-limits related, I think we'd have found and fixed it by now.https://gitlab.isc.org/isc-projects/bind9/-/issues/2999remove duplicate code between DLZ example & dlzexternal test2022-01-07T09:40:28ZPetr Špačekpspacek@isc.orgremove duplicate code between DLZ example & dlzexternal testVersion: main branch, 4bebcd45033400a6b1a3057c60c3a2cfd5fd4029
These two files are substantially the same:
- contrib/dlz/example/dlz_example.c
- bin/tests/system/dlzexternal/driver/driver.c
I think we should remove one of them and use ...Version: main branch, 4bebcd45033400a6b1a3057c60c3a2cfd5fd4029
These two files are substantially the same:
- contrib/dlz/example/dlz_example.c
- bin/tests/system/dlzexternal/driver/driver.c
I think we should remove one of them and use symlink instead of copy. Updating two files is ... suboptimal.Long-termhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2995about PKCS11 document2022-03-01T09:43:12Zperlangabout PKCS11 documentFrom release note of 9.16.22, there is following line,
The use of native PKCS#11 for Public-Key Cryptography in BIND 9 has been deprecated in favor of the engine_pkcs11 OpenSSL engine from the OpenSC project.
but in section 5.11.2 Nati...From release note of 9.16.22, there is following line,
The use of native PKCS#11 for Public-Key Cryptography in BIND 9 has been deprecated in favor of the engine_pkcs11 OpenSSL engine from the OpenSC project.
but in section 5.11.2 Native PKCS#11 of Bv9ARM(9.16.22), there is one opposite meaning line,
(Note: Eventually, when more HSMs become capable of supporting native PKCS#11, it is expected that OpenSSL-based PKCS#11 will be deprecated.)
I guess the latter(5.11.2) should be outdated. But not too sure.Not plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2984ECS-IP not visible in the "rpz.log"2023-04-12T12:34:45ZThomas AmgartenECS-IP not visible in the "rpz.log"<!--
If the bug you are reporting is potentially security-related - for example,
if it involves an assertion failure or other crash in `named` that can be
triggered repeatedly - then please do *NOT* report it here, but send an
email to [...<!--
If the bug you are reporting is potentially security-related - for example,
if it involves an assertion failure or other crash in `named` that can be
triggered repeatedly - then please do *NOT* report it here, but send an
email to [security-officer@isc.org](security-officer@isc.org).
-->
### Summary
If an RPZ-enabled BIND is behind a proxy/loadbalancer (for example dnsdist), which injects the ECS-IP, there's actually no way to have/see the client ip address (ECS-IP) in the "rpz.log". Instead, one can correctly see only the ip address from the proxy/dnsdist itself and not the address from the effective source.
### BIND version used
Tested with BIND-9.16.21
### Steps to reproduce
- Place a proxy/dnsdist in front of BIND and inject the ECS-IP.
```
Domain Name System (response)
Transaction ID: 0x5d00
Flags: 0x8183 Standard query response, No such name
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .0.. .... .... = Authoritative: Server is not an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 1... .... = Recursion available: Server can do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
.... .... ...0 .... = Non-authenticated data: Unacceptable
.... .... .... 0011 = Reply code: No such name (3)
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 1
Queries
example.ch: type A, class IN
Name: example.ch
[Name Length: 8]
[Label Count: 2]
Type: A (Host Address) (1)
Class: IN (0x0001)
Additional records
<Root>: type OPT
Name: <Root>
Type: OPT (41)
UDP payload size: 1232
Higher bits in extended RCODE: 0x00
EDNS0 version: 0
Z: 0x0000
0... .... .... .... = DO bit: Cannot handle DNSSEC security RRs
.000 0000 0000 0000 = Reserved: 0x0000
Data length: 40
Option: COOKIE
Option Code: COOKIE (10)
Option Length: 24
Option Data: faf2434380c56c3d01000000617a1b9c7be4e739ff1b30de
Client Cookie: faf2434380c56c3d
Server Cookie: 01000000617a1b9c7be4e739ff1b30de
Option: CSUBNET - Client subnet
Option Code: CSUBNET - Client subnet (8)
Option Length: 8
Option Data: 00012000c0a8ec02
Family: IPv4 (1)
Source Netmask: 32
Scope Netmask: 0
Client Subnet: 172.16.16.33 <------------------
[Request In: 13]
[Time: 0.000221000 seconds]
```
- Then query a domain via proxy, which triggers RPZ
### What is the current *bug* behavior?
- Verify the "rpz.log", which only shows the proxy-ip
```
27-Oct-2021 15:41:27.940 rpz: info: client @0x7f3db81aa0f8 127.0.0.1#44353 (example.ch): rpz QNAME NXDOMAIN rewrite example.ch/A/IN via example.ch.blacklist-rpz.test.local
```
### What is the expected *correct* behavior?
A way to see the ECS-IP, the effective client ip address, like this is already implemented, when enabling the builtin "rndc querylog on":
```
27-Oct-2021 15:41:27.940 queries: info: client @0x7f3db81aa0f8 127.0.0.1#44353 (example.ch): query: example.ch IN A +E(0)K (127.0.0.1) [ECS 172.16.16.33/32/0]
```
### Relevant configuration files
(Paste any relevant configuration files - please use code blocks (```)
to format console output. If submitting the contents of your
configuration file in a non-confidential Issue, it is advisable to
obscure key secrets: this can be done automatically by using
`named-checkconf -px`.)
### Relevant logs and/or screenshots
### Possible fixesNot plannedhttps://gitlab.isc.org/isc-projects/bind9/-/issues/2980QNAME minimisation and check-names response fail; interact2021-10-27T08:31:37ZMark AndrewsQNAME minimisation and check-names response fail; interactI noticed `check-names failure _.clients6.google.com/A/IN` in the logs with check-names response fail set.I noticed `check-names failure _.clients6.google.com/A/IN` in the logs with check-names response fail set.Not planned