diff options
author | Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> | 2023-05-17 15:44:02 +0300 |
---|---|---|
committer | Austin S. Hemmelgarn <austin@netdata.cloud> | 2023-05-18 07:14:56 -0400 |
commit | 97083c4199dbda4005ed67f2a0b734767e664c48 (patch) | |
tree | 9df07e1ddec64b14d1af00059757e9a0b51c9c3a | |
parent | ceab47e0c3e2b006b9923cd981043053f3cb2906 (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.c | 2 | ||||
-rw-r--r-- | libnetdata/libnetdata.c | 2 |
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; } |