[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] 16/28: NAMESTORE: avoid use-after-free in handle_record_result.
From: |
gnunet |
Subject: |
[gnunet] 16/28: NAMESTORE: avoid use-after-free in handle_record_result. |
Date: |
Mon, 06 Feb 2023 06:19:18 +0100 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a commit to branch master
in repository gnunet.
commit ebdafecb3b388b5c629ce7855d253415be440edf
Author: ulfvonbelow <strilen@tilde.club>
AuthorDate: Sun Jan 29 06:24:16 2023 -0600
NAMESTORE: avoid use-after-free in handle_record_result.
Signed-off-by: Martin Schanzenbach <schanzen@gnunet.org>
---
src/namestore/namestore_api.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/namestore/namestore_api.c b/src/namestore/namestore_api.c
index df6ba1f33..2c5efb745 100644
--- a/src/namestore/namestore_api.c
+++ b/src/namestore/namestore_api.c
@@ -619,11 +619,17 @@ handle_record_result (void *cls, const struct
RecordResultMessage *msg)
}
if (NULL != ze)
{
- if (NULL != ze->proc)
- ze->proc (ze->proc_cls, &private_key, name, rd_count, rd);
- if (NULL != ze->proc2)
- ze->proc2 (ze->proc_cls, &private_key, name,
- rd_count, rd, GNUNET_TIME_absolute_ntoh (msg->expire));
+ // Store them here because a callback could free ze
+ GNUNET_NAMESTORE_RecordMonitor proc;
+ GNUNET_NAMESTORE_RecordSetMonitor proc2;
+ void *proc_cls = ze->proc_cls;
+ proc = ze->proc;
+ proc2 = ze->proc2;
+ if (NULL != proc)
+ proc (proc_cls, &private_key, name, rd_count, rd);
+ if (NULL != proc2)
+ proc2 (proc_cls, &private_key, name,
+ rd_count, rd, GNUNET_TIME_absolute_ntoh (msg->expire));
return;
}
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet] 04/28: -CORE: fix memory leak in test., (continued)
- [gnunet] 04/28: -CORE: fix memory leak in test., gnunet, 2023/02/06
- [gnunet] 08/28: -GNS: use proper config file name in test_proxy.sh., gnunet, 2023/02/06
- [gnunet] 11/28: HELLO: fix memory leak in GNUNET_HELLO_extract_address., gnunet, 2023/02/06
- [gnunet] 17/28: PEERSTORE: fix write-after-free in handle_{iterate_end,watch_record}, gnunet, 2023/02/06
- [gnunet] 18/28: RECLAIM: rename G_D_key_covert_... to G_D_key_convert_..., gnunet, 2023/02/06
- [gnunet] 12/28: JSON: fix memory leaks in test., gnunet, 2023/02/06
- [gnunet] 06/28: DHT: remove "memory leak" in gnunet-dht-{get,put}., gnunet, 2023/02/06
- [gnunet] 05/28: -DATACACHE: fix memory leaks in tests., gnunet, 2023/02/06
- [gnunet] 07/28: FS: fix memory leak in GNUNET_FS_search_stop., gnunet, 2023/02/06
- [gnunet] 09/28: GNSRECORD: fix memory leaks in tests., gnunet, 2023/02/06
- [gnunet] 16/28: NAMESTORE: avoid use-after-free in handle_record_result.,
gnunet <=
- [gnunet] 15/28: NAMESTORE: fix overread in handle_record_store., gnunet, 2023/02/06
- [gnunet] 13/28: -NAMESTORE: fix memory leaks in tests., gnunet, 2023/02/06
- [gnunet] 14/28: NAMESTORE: fix memory leak in parse_recordline., gnunet, 2023/02/06
- [gnunet] 10/28: -HELLO: fix memory leaks in tests., gnunet, 2023/02/06
- [gnunet] 27/28: SETU: prevent misaligned access to StrataEstimatorMessage.set_size., gnunet, 2023/02/06
- [gnunet] 23/28: REVOCATION: don't leak signature purpose memory., gnunet, 2023/02/06
- [gnunet] 25/28: SETU: avoid 64-bit shift on 64-bit value., gnunet, 2023/02/06
- [gnunet] 28/28: SETU: don't leak Operation.{message_control_flow,inquiries_sent}., gnunet, 2023/02/06
- [gnunet] 19/28: RECLAIM: fix 1-byte overflow in DID_did_to_pkey., gnunet, 2023/02/06
- [gnunet] 22/28: TESTBED: don't leak helper_argv when SSH can't be executed., gnunet, 2023/02/06