Ondřej Surý
d1f035bbba
lib/ns/query.c: Fix invalid order of DbC checks that could cause dereference before NULL check
2019-10-03 09:04:27 +02:00
Ondřej Surý
033f3eb580
lib/ns/interfacemgr.c: Fix invalid order of DbC checks that could cause dereference before NULL check
2019-10-03 09:04:27 +02:00
Ondřej Surý
b4a42a286f
lib/ns/client.c: Fix invalid order of DbC checks that could cause dereference before NULL check
2019-10-03 09:04:27 +02:00
Ondřej Surý
f855f09a55
lib/isccfg/parser.c: Fix invalid order of DbC checks that could cause dereference before NULL check
2019-10-03 09:04:27 +02:00
Ondřej Surý
09232213d7
lib/isccfg/aclconf.c: Suppress nullPointerRedundantCheck false positive
2019-10-03 09:04:27 +02:00
Ondřej Surý
026cf2ff4f
lib/isc/unix/socket.c: Suppress preprocessorErrorDirective error from Cppcheck
2019-10-03 09:04:27 +02:00
Ondřej Surý
c662969da1
lib/isc/task.c: Fix invalid order of DbC checks that could cause dereference before NULL check
2019-10-03 09:04:27 +02:00
Ondřej Surý
e8948fd9b4
lib/isc/pkc11.c: Fix possible NULL pointer dereference in push_attribute()
2019-10-03 09:04:27 +02:00
Ondřej Surý
e9f30fc211
lib/isc/buffer.c: Fix invalid order of DbC checks that could cause dereference before NULL check
2019-10-03 09:04:27 +02:00
Ondřej Surý
8f2ad12d0a
lib/dns/tsig.c: Suppress Cppcheck false positive error uninitStructMember
2019-10-03 09:04:27 +02:00
Ondřej Surý
14c174d921
lib/dns/tests/rbt_serialize_test.c: Fix dereference before DbC check
2019-10-03 09:04:27 +02:00
Ondřej Surý
269d507ccc
Instead of declaring unused va_list, just don't declare it at all
2019-10-03 09:04:27 +02:00
Ondřej Surý
5fc7e98d29
lib/dns/rdatalist.c: Fix dereference before DbC check
2019-10-03 09:04:26 +02:00
Ondřej Surý
66af8713d8
lib/dns/rdata/*/*.c: Silence false positive nullPointerRedundantCheck warning from Cppcheck
...
Cppcheck gets confused by:
void bar(void *arg) {
foo *data = arg;
REQUIRE(source != NULL);
REQUIRE(data->member != NULL);
}
and for consistency the DbC check needs to be changed to
void bar(void *arg) {
foo *data = arg;
REQUIRE(data != NULL);
REQUIRE(data->member != NULL);
}
2019-10-03 09:04:26 +02:00
Ondřej Surý
e68333aa67
lib/dns/rdata.c: Silence false positive nullPointerRedundantCheck warning from Cppcheck
2019-10-03 09:04:26 +02:00
Ondřej Surý
d508ce4036
lib/dns/rbtdb.c: Add DbC check to safely dereference rbtdb in rbt_datafixer()
2019-10-03 09:04:26 +02:00
Ondřej Surý
8be5c3fcfc
lib/dns/rbt.c: Suppress nullPointerRedundantCheck warnings from Cppcheck
2019-10-03 09:04:26 +02:00
Ondřej Surý
0f5860aad3
lib/dns/name.c: Fix dereference before DbC check reported by Cppcheck
2019-10-03 09:04:26 +02:00
Ondřej Surý
cea871464f
lib/dns/gssapi_link.c: Fix %d -> %u formatting when printing unsigned integers
2019-10-03 09:04:26 +02:00
Ondřej Surý
d8879af877
Fix passing NULL after the last typed argument to a variadic function leads to undefined behaviour.
...
From Cppcheck:
Passing NULL after the last typed argument to a variadic function leads to
undefined behaviour. The C99 standard, in section 7.15.1.1, states that if the
type used by va_arg() is not compatible with the type of the actual next
argument (as promoted according to the default argument promotions), the
behavior is undefined. The value of the NULL macro is an implementation-defined
null pointer constant (7.17), which can be any integer constant expression with
the value 0, or such an expression casted to (void*) (6.3.2.3). This includes
values like 0, 0L, or even 0LL.In practice on common architectures, this will
cause real crashes if sizeof(int) != sizeof(void*), and NULL is defined to 0 or
any other null pointer constant that promotes to int. To reproduce you might be
able to use this little code example on 64bit platforms. If the output includes
"ERROR", the sentinel had only 4 out of 8 bytes initialized to zero and was not
detected as the final argument to stop argument processing via
va_arg(). Changing the 0 to (void*)0 or 0L will make the "ERROR" output go away.
void f(char *s, ...) {
va_list ap;
va_start(ap,s);
for (;;) {
char *p = va_arg(ap,char*);
printf("%018p, %s\n", p, (long)p & 255 ? p : "");
if(!p) break;
}
va_end(ap);
}
void g() {
char *s2 = "x";
char *s3 = "ERROR";
// changing 0 to 0L for the 7th argument (which is intended to act as
// sentinel) makes the error go away on x86_64
f("first", s2, s2, s2, s2, s2, 0, s3, (char*)0);
}
void h() {
int i;
volatile unsigned char a[1000];
for (i = 0; i<sizeof(a); i++)
a[i] = -1;
}
int main() {
h();
g();
return 0;
}
2019-10-03 09:04:26 +02:00
Ondřej Surý
91cc6b9eb9
lib/dns/ecdb.c: Fix couple of DbC conditions reported by Cppcheck
2019-10-03 09:04:26 +02:00
Ondřej Surý
fa7475b77a
Fix the constification of the dns_name_t * result variable for dns_tsig_identity()
2019-10-03 09:04:26 +02:00
Ondřej Surý
43925b2a8b
bin/named/zoneconf.c: Reset dns_name_t *tsig on every view iteration
2019-10-03 09:04:26 +02:00
Ondřej Surý
2e304b0b7f
Change dns_tsigkey_identity from macro to a function and const argument and result
2019-10-03 09:04:26 +02:00
Ondřej Surý
4d2697b31c
Constify dns_name_t *signer argument to dns_acl_allowed()
2019-10-03 09:04:26 +02:00
Ondřej Surý
476277a6e6
bin/named/server.c: Fix couple of DbC conditions reported by Cppcheck
2019-10-03 09:04:26 +02:00
Ondřej Surý
9366ca769f
bin/dig/dighost.c: Fix REQUIRE(!= NULL) condition after the variable has been dereferenced
2019-10-03 09:04:26 +02:00
Ondřej Surý
9ab16d10d4
bin/delv/delv.c: Fix invalid logic operation in REQUIRE() condition
2019-10-03 09:04:26 +02:00
Ondřej Surý
f55dc51f42
Add Cppcheck job to the CI
...
This MR changes the default Debian sid build to wrap make with bear
that creates compilation database and use the compilation database
to run Cppcheck on the source files systematically.
The job is currently set to be allowed to fail as it will take some
time to fix all the Cppcheck detected issues.
2019-10-03 09:04:26 +02:00
Ondřej Surý
5be620bd35
Merge branch '1119-disable-time-consuming-tests-benchmarks-when-tsan-is-enabled' into 'master'
...
Disable time consuming tests when compiling with Thread Sanitizer
See merge request isc-projects/bind9!2365
2019-10-02 08:49:00 -04:00
Ondřej Surý
2230b9d55d
Disable benchmark tests when Thread Sanitizer is enabled
2019-10-02 14:09:33 +02:00
Ondřej Surý
8828a41077
Declare __SANITIZE_THREAD__ in isc/util.h when clang ThreadSanitizer is used
2019-10-02 14:09:33 +02:00
Ondřej Surý
86983405f2
Merge branch '1119-tsan-lib/isc/tests/timer_test.c' into 'master'
...
Convert all variables accessed between multiple threads to atomic
See merge request isc-projects/bind9!2364
2019-10-02 08:06:13 -04:00
Ondřej Surý
e06a34674a
Convert all variables accessed between multiple threads to atomic
2019-10-02 13:41:45 +02:00
Ondřej Surý
3a0a69a9cd
Merge branch '1119-tsan-lib/isc/tests/task_test.c' into 'master'
...
Convert all variables accessed between multiple threads to atomic
See merge request isc-projects/bind9!2363
2019-10-02 07:38:10 -04:00
Ondřej Surý
07879f354c
Properly initialize atomic variables
2019-10-02 13:09:33 +02:00
Ondřej Surý
76e954124a
lib/isc/tests/task_test.c: Convert all variables accessed between multiple threads to atomic
2019-10-02 13:09:28 +02:00
Ondřej Surý
91e2deede6
Merge branch '1119-tsan-lib/dns/zone.c-flags' into 'master'
...
Convert the dns_zone_t flags, options and keyopts to stdatomic
See merge request isc-projects/bind9!2359
2019-10-02 07:08:35 -04:00
Ondřej Surý
9b0d4f520e
Convert DNS_ZONEKEY_, DNS_ZONEFLG_ and DNS_ZONELOADFLAG_ #defines to enums
2019-10-02 12:41:12 +02:00
Ondřej Surý
679ef8bb95
Fix miscelaneous zone object validity checking errors (missing REQUIRE(), out of order REQUIRE())
2019-10-02 12:41:12 +02:00
Ondřej Surý
2638337826
Convert the flags, options, and keyopts of dns_zone_t structure to 64-bit stdatomic types
...
...and use atomic_fetch_or and atomic_fetch_and to set and clear the flags
2019-10-02 12:41:12 +02:00
Ondřej Surý
e1b24a4dfe
Merge branch '1119-tsan-dispatch_test.c' into 'master'
...
lib/dns/tests/dispatch_test.c: Convert global responses variable to atomic to prevent data race
See merge request isc-projects/bind9!2355
2019-10-02 06:39:28 -04:00
Ondřej Surý
55a3217fe7
Convert global variables to atomic to prevent possible data race
2019-10-02 12:09:44 +02:00
Stephen Morris
2aec2e6425
Merge branch 'stephen/update-release-template' into 'master'
...
Update release checklist template
See merge request isc-projects/bind9!2428
2019-10-02 05:15:26 -04:00
Stephen Morris
27b98a1e78
Update release template
...
Include a step stating that tags for the published releases must
be created in the public repository.
2019-10-02 09:28:21 +01:00
Evan Hunt
9c0262f1c9
Merge branch 'placeholder' into 'master'
...
placeholder
See merge request isc-projects/bind9!2427
2019-10-02 01:08:05 -04:00
Evan Hunt
0d65990741
placeholder
2019-10-01 22:07:31 -07:00
Evan Hunt
3520d62b07
Merge branch '1191-qmin-fetch-failure' into 'master'
...
SERVFAIL if a prior qmin fetch has not been canceled when a new one starts
See merge request isc-projects/bind9!2416
2019-10-02 00:13:07 -04:00
Evan Hunt
1d741c5c0f
CHANGES
2019-10-01 20:47:45 -07:00
Evan Hunt
488cb4da10
SERVFAIL if a prior qmin fetch has not been canceled when a new one starts
2019-10-01 20:41:53 -07:00