From a553390178f74b0740568547418a01746cb2a5a1 Mon Sep 17 00:00:00 2001 From: Costa Tsaousis Date: Fri, 10 Jan 2025 00:15:06 +0000 Subject: [PATCH] prevent memory corruption in dbengine (#19365) prevent memory corruption --- src/database/engine/rrdengineapi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/database/engine/rrdengineapi.c b/src/database/engine/rrdengineapi.c index 6d737fb613bac8..b5712e2a4d6d07 100755 --- a/src/database/engine/rrdengineapi.c +++ b/src/database/engine/rrdengineapi.c @@ -911,8 +911,10 @@ void rrdeng_load_metric_finalize(struct storage_engine_query_handle *seqh) pgdc_reset(&handle->pgdc, NULL, UINT32_MAX); } - if(!pdc_release_and_destroy_if_unreferenced(handle->pdc, false, false)) + if(handle->pdc) { __atomic_store_n(&handle->pdc->workers_should_stop, true, __ATOMIC_RELAXED); + pdc_release_and_destroy_if_unreferenced(handle->pdc, false, false); + } unregister_query_handle(handle); rrdeng_query_handle_release(handle);