From: Yu Watanabe Date: Mon, 31 Jul 2023 13:11:51 +0000 (+0900) Subject: resolve: initialize 'current' when SD_RESOLVED_NO_STALE is set X-Git-Tag: v255-rc1~868^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F28568%2Fhead;p=thirdparty%2Fsystemd.git resolve: initialize 'current' when SD_RESOLVED_NO_STALE is set Otherwise, the check below is always fail. ``` if (FLAGS_SET(query_flags, SD_RESOLVED_NO_STALE) && j->until_valid < current) ``` Follow-up for 5ed91481abea382dc486507556e5cdf0f36b796f. --- diff --git a/src/resolve/resolved-dns-cache.c b/src/resolve/resolved-dns-cache.c index 9d2a2fa1acb..3805150d981 100644 --- a/src/resolve/resolved-dns-cache.c +++ b/src/resolve/resolved-dns-cache.c @@ -1030,9 +1030,10 @@ int dns_cache_lookup( goto miss; } - if (FLAGS_SET(query_flags, SD_RESOLVED_CLAMP_TTL)) { + if ((query_flags & (SD_RESOLVED_CLAMP_TTL | SD_RESOLVED_NO_STALE)) != 0) { /* 'current' is always passed to answer_add_clamp_ttl(), but is only used conditionally. - * We'll do the same assert there to make sure that it was initialized properly. */ + * We'll do the same assert there to make sure that it was initialized properly. + * 'current' is also used below when SD_RESOLVED_NO_STALE is set. */ current = now(CLOCK_BOOTTIME); assert(current > 0); }