From ae57f840615f1b5591b7b00ef029c9bf6b65e9b1 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 18 Apr 2025 14:01:14 +0100 Subject: [PATCH] Do a better job of 942a35f5177746d2080e7aa118dd1493a500e2d5 --- src/cache.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/cache.c b/src/cache.c index 682ee92..94f19a5 100644 --- a/src/cache.c +++ b/src/cache.c @@ -844,12 +844,15 @@ void cache_end_insert(void) #ifdef HAVE_DNSSEC /* Sneak out possibly updated crypto HWM values. */ - m = daemon->metrics[METRIC_CRYPTO_HWM]; - read_write(daemon->pipe_to_parent, (unsigned char *)&m, sizeof(m), RW_WRITE); - m = daemon->metrics[METRIC_SIG_FAIL_HWM]; - read_write(daemon->pipe_to_parent, (unsigned char *)&m, sizeof(m), RW_WRITE); - m = daemon->metrics[METRIC_WORK_HWM]; - read_write(daemon->pipe_to_parent, (unsigned char *)&m, sizeof(m), RW_WRITE); + read_write(daemon->pipe_to_parent, + (unsigned char *)&daemon->metrics[METRIC_CRYPTO_HWM], + sizeof(daemon->metrics[METRIC_CRYPTO_HWM]), RW_WRITE); + read_write(daemon->pipe_to_parent, + (unsigned char *)&daemon->metrics[METRIC_SIG_FAIL_HWM], + sizeof(daemon->metrics[METRIC_SIG_FAIL_HWM]), RW_WRITE); + read_write(daemon->pipe_to_parent, + (unsigned char *)&daemon->metrics[METRIC_WORK_HWM], + sizeof(daemon->metrics[METRIC_WORK_HWM]), RW_WRITE); #endif } @@ -879,18 +882,20 @@ int cache_recv_insert(time_t now, int fd) { #ifdef HAVE_DNSSEC /* Sneak in possibly updated crypto HWM. */ - if (!read_write(fd, (unsigned char *)&m, sizeof(m), RW_READ)) + unsigned int val; + + if (!read_write(fd, (unsigned char *)&val, sizeof(val), RW_READ)) return 0; - if ((unsigned int)m > daemon->metrics[METRIC_CRYPTO_HWM]) - daemon->metrics[METRIC_CRYPTO_HWM] = m; - if (!read_write(fd, (unsigned char *)&m, sizeof(m), RW_READ)) + if (val > daemon->metrics[METRIC_CRYPTO_HWM]) + daemon->metrics[METRIC_CRYPTO_HWM] = val; + if (!read_write(fd, (unsigned char *)&val, sizeof(val), RW_READ)) return 0; - if ((unsigned int)m > daemon->metrics[METRIC_SIG_FAIL_HWM]) - daemon->metrics[METRIC_SIG_FAIL_HWM] = m; - if (!read_write(fd, (unsigned char *)&m, sizeof(m), RW_READ)) + if (val > daemon->metrics[METRIC_SIG_FAIL_HWM]) + daemon->metrics[METRIC_SIG_FAIL_HWM] = val; + if (!read_write(fd, (unsigned char *)&val, sizeof(val), RW_READ)) return 0; - if ((unsigned int)m > daemon->metrics[METRIC_WORK_HWM]) - daemon->metrics[METRIC_WORK_HWM] = m; + if (val > daemon->metrics[METRIC_WORK_HWM]) + daemon->metrics[METRIC_WORK_HWM] = val; #endif cache_end_insert(); return 1;