exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit e1d401aa0754b9ef5fb228cc555bb4be278c18d6
parent 0c5cf91f07e4ca96dd959aa898337dd7e760c501
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun, 11 Oct 2026 14:39:56 +0200

fix use-after-free

Diffstat:
Msrc/exchange/taler-exchange-expire.c | 5++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/exchange/taler-exchange-expire.c b/src/exchange/taler-exchange-expire.c @@ -455,6 +455,9 @@ run_shard (void *cls) } if (GNUNET_TIME_absolute_is_future (s->shard_end)) { + /* abort_shard() frees @a s */ + struct GNUNET_TIME_Absolute shard_end = s->shard_end; + abort_shard (s); if (test_mode) { @@ -464,7 +467,7 @@ run_shard (void *cls) return; } GNUNET_assert (NULL == task); - task = GNUNET_SCHEDULER_add_at (s->shard_end, + task = GNUNET_SCHEDULER_add_at (shard_end, &run_shard, NULL); return;