[Dnsmasq-discuss] DNSMASQ Cache
Petr Menšík
pemensik at redhat.com
Mon Jun 20 14:35:05 UTC 2022
Even if that value were never used, it should be initialized to a
defined value. Be it 0 or ~0, it does not matter. But it should not have
random value from stack, even in case it cannot be obtained by outer
requests.
On 19. 06. 22 23:48, Simon Kelley wrote:
> On 13/06/2022 08:16, John Gilmour via Dnsmasq-discuss wrote:
>> Hello,
>>
>>
>> First time user so please bear with me.
>>
>>
>> I have some quite specific in-house code that relies on the
>> "cache->ttd" value. I have noticed that the function "cache_reload"
>> in "src/cache.c" defines the following variable:
>> struct crec lrec
>>
>>
>> Further down in this function it makes non-terminal records for all
>> locally-defined RRs. It may be more of a question but why are the
>> "ttd", "uid" and "ns_id" fields not initialized before the various
>> calls to "make_non_terminals(&lrec)". When I check the value of the
>> "cache->ttd" in this function it's clearly just going to be random.
>>
>
> cache entries which don't expire are marked by setting the F_IMMORTAL
> flag in the ->flags field. If that flag is set then the value of ->ttd
> is meaningless and unused. It's done this way rather than assigning a
> special value to ttd because the time scale varies in different
> installations and there isn't a suitable "special" time value that
> will always work.
>
>
>>
>> Is this just an oversight or is deliberately not set?
>
> See above.
>
>
> Cheers,
>
> Simon.
>
>>
>>
>> Best regards,
>>
>>
>> John.
>>
>>
--
Petr Menšík
Software Engineer, RHEL
Red Hat, http://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
More information about the Dnsmasq-discuss
mailing list