]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: fix non-initialized memory access
authorLennart Poettering <lennart@poettering.net>
Fri, 6 Nov 2020 17:08:38 +0000 (18:08 +0100)
committerVito Caputo <vcaputo@pengaru.com>
Fri, 6 Nov 2020 21:58:20 +0000 (13:58 -0800)
Fix for bug introduced in 1ed314087fab3988f3221b1b736a7e711f174349.

src/resolve/resolved-dns-cache.c

index 2c243811718e1319b2482ac4092754ff3fa7d3e4..ccc591404619883c9cada56e7e34678154cc2e34 100644 (file)
@@ -531,9 +531,6 @@ static int dns_cache_put_negative(
                 .type =
                         rcode == DNS_RCODE_SUCCESS ? DNS_CACHE_NODATA :
                         rcode == DNS_RCODE_NXDOMAIN ? DNS_CACHE_NXDOMAIN : DNS_CACHE_RCODE,
-                .until =
-                        i->type == DNS_CACHE_RCODE ? timestamp + CACHE_TTL_STRANGE_RCODE_USEC :
-                        calculate_until(soa, nsec_ttl, timestamp, true),
                 .authenticated = authenticated,
                 .owner_family = owner_family,
                 .owner_address = *owner_address,
@@ -541,6 +538,10 @@ static int dns_cache_put_negative(
                 .rcode = rcode,
         };
 
+        i->until =
+                i->type == DNS_CACHE_RCODE ? timestamp + CACHE_TTL_STRANGE_RCODE_USEC :
+                calculate_until(soa, nsec_ttl, timestamp, true);
+
         if (i->type == DNS_CACHE_NXDOMAIN) {
                 /* NXDOMAIN entries should apply equally to all types, so we use ANY as
                  * a pseudo type for this purpose here. */