summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStelios Fragkakis <52996999+stelfrag@users.noreply.github.com>2023-05-17 15:44:02 +0300
committerAustin S. Hemmelgarn <austin@netdata.cloud>2023-05-18 07:14:56 -0400
commit97083c4199dbda4005ed67f2a0b734767e664c48 (patch)
tree9df07e1ddec64b14d1af00059757e9a0b51c9c3a
parentceab47e0c3e2b006b9923cd981043053f3cb2906 (diff)
Fix memory leak when sending alerts checkoint (#15060)
* Free active_alerts and claim_id * Free digest context * Release memory unconditionally
-rw-r--r--database/sqlite/sqlite_aclk_alert.c2
-rw-r--r--libnetdata/libnetdata.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/database/sqlite/sqlite_aclk_alert.c b/database/sqlite/sqlite_aclk_alert.c
index 62f1df29d0..1e5bd0b74f 100644
--- a/database/sqlite/sqlite_aclk_alert.c
+++ b/database/sqlite/sqlite_aclk_alert.c
@@ -1114,6 +1114,7 @@ void aclk_push_alarm_checkpoint(RRDHOST *host __maybe_unused)
buffer_strcat(alarms_to_hash, "");
len = 0;
}
+ freez(active_alerts);
char hash[SHA256_DIGEST_LENGTH + 1];
if (hash256_string((const unsigned char *)buffer_tostring(alarms_to_hash), len, hash)) {
@@ -1126,6 +1127,7 @@ void aclk_push_alarm_checkpoint(RRDHOST *host __maybe_unused)
alarm_checkpoint.checksum = (char *)hash;
aclk_send_provide_alarm_checkpoint(&alarm_checkpoint);
+ freez(claim_id);
log_access("ACLK RES [%s (%s)]: ALERTS CHECKPOINT SENT", wc->node_id, rrdhost_hostname(host));
} else {
log_access("ACLK RES [%s (%s)]: FAILED TO CREATE ALERTS CHECKPOINT HASH", wc->node_id, rrdhost_hostname(host));
diff --git a/libnetdata/libnetdata.c b/libnetdata/libnetdata.c
index a8f26c33b8..19b861e39a 100644
--- a/libnetdata/libnetdata.c
+++ b/libnetdata/libnetdata.c
@@ -2031,6 +2031,6 @@ int hash256_string(const unsigned char *string, size_t size, char *hash) {
EVP_MD_CTX_destroy(ctx);
return 0;
}
-
+ EVP_MD_CTX_destroy(ctx);
return 1;
}