summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2021-09-11 21:56:19 +0100
committerSimon Kelley <simon@thekelleys.org.uk>2021-09-11 21:57:30 +0100
commit51ffae4eabd4a0cb5ddb2cc025372457953beb22 (patch)
treeb5b3a650f24b3eb6fc9bbd7be1910815dae5ea6f
parentafe84f37f88dfe879c96a13ba43b05043c07610d (diff)
downloaddnsmasq-51ffae4eabd4a0cb5ddb2cc025372457953beb22.tar.gz
Fix coverity detected issues in cache.c
Error: UNINIT (CWE-457): [#def27] dnsmasq-2.86test7/src/cache.c:1193: var_decl: Declaring variable "lrec" without initializer. dnsmasq-2.86test7/src/cache.c:1315: uninit_use_in_call: Using uninitialized value "lrec.ttd" when calling "make_non_terminals". # 1313| { # 1314| lrec.name.namep = txt->name; # 1315|-> make_non_terminals(&lrec); # 1316| } # 1317| Error: CLANG_WARNING: [#def29] dnsmasq-2.86test7/src/cache.c:1552:15: warning[core.uninitialized.Assign]: Assigned value is garbage or undefined # 1550| { # 1551| crecp->flags = (source->flags | F_NAMEP) & ~(F_IPV4 | F_IPV6 | F_CNAME | F_SRV | F_DNSKEY | F_DS | F_REVERSE); # 1552|-> crecp->ttd = source->ttd; # 1553| crecp->name.namep = name; # 1554|
-rw-r--r--src/cache.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cache.c b/src/cache.c
index 8f97947..568cbec 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -1597,7 +1597,8 @@ static void make_non_terminals(struct crec *source)
if (crecp)
{
crecp->flags = (source->flags | F_NAMEP) & ~(F_IPV4 | F_IPV6 | F_CNAME | F_SRV | F_DNSKEY | F_DS | F_REVERSE);
- crecp->ttd = source->ttd;
+ if (!(crecp->flags & F_IMMORTAL))
+ crecp->ttd = source->ttd;
crecp->name.namep = name;
cache_hash(crecp);