From 0afd3d595f5a9846a9e24d89eeaa09188851f0bc Mon Sep 17 00:00:00 2001 From: link2xt Date: Mon, 13 Mar 2023 13:07:26 +0000 Subject: [PATCH] Fix potential use-after-free in dc_jsonrpc_request() --- deltachat-ffi/src/lib.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/deltachat-ffi/src/lib.rs b/deltachat-ffi/src/lib.rs index e4467fa17..20592108e 100644 --- a/deltachat-ffi/src/lib.rs +++ b/deltachat-ffi/src/lib.rs @@ -4653,8 +4653,12 @@ mod jsonrpc { return; } - let api = &*jsonrpc_instance; - let handle = &api.handle; + let handle = &(*jsonrpc_instance).handle; + + // Clone the handle so we do not use the reference + // in spawned task after return from dc_jsonrpc_request(). + let handle = handle.clone(); + let request = to_string_lossy(request); spawn(async move { handle.handle_incoming(&request).await;