commit e1d401aa0754b9ef5fb228cc555bb4be278c18d6
parent 0c5cf91f07e4ca96dd959aa898337dd7e760c501
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 11 Oct 2026 14:39:56 +0200
fix use-after-free
Diffstat:
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;