diff options
author | Piotr Wierciński <piotr.wiercinski@qt.io> | 2024-02-29 16:53:07 +0100 |
---|---|---|
committer | Piotr Wierciński <piotr.wiercinski@qt.io> | 2024-03-14 18:11:52 +0000 |
commit | a5b00cefef12999e9a213943855abe6bc0ab5365 (patch) | |
tree | e652e16c61856a5e88cf6c534cb698e4748e82cb | |
parent | 4b78ce97b03cea03d4aff5e8c394117bc27f04a0 (diff) |
wasm: Dont access QNetworkReply header data through dangling pointer
Fixes: QTBUG-122893
Pick-to: 6.5 6.6 6.7
Change-Id: I3768fdffaec7be4ec0b559fdb365600220e648d1
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_wasm_p.h | 2 | ||||
-rw-r--r-- | src/network/access/qnetworkreplywasmimpl.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_wasm_p.h b/src/corelib/kernel/qeventdispatcher_wasm_p.h index 372be88a1c..cf718a151b 100644 --- a/src/corelib/kernel/qeventdispatcher_wasm_p.h +++ b/src/corelib/kernel/qeventdispatcher_wasm_p.h @@ -54,6 +54,7 @@ public: void interrupt() override; void wakeUp() override; + static void runOnMainThread(std::function<void(void)> fn); static void runOnMainThreadAsync(std::function<void(void)> fn); static void socketSelect(int timeout, int socket, bool waitForRead, bool waitForWrite, bool *selectForRead, bool *selectForWrite, bool *socketDisconnect); @@ -96,7 +97,6 @@ private: bool *selectForRead, bool *selectForWrite, bool *socketDisconnect); static void run(std::function<void(void)> fn); - static void runOnMainThread(std::function<void(void)> fn); static void runAsync(std::function<void(void)> fn); static QEventDispatcherWasm *g_mainThreadEventDispatcher; diff --git a/src/network/access/qnetworkreplywasmimpl.cpp b/src/network/access/qnetworkreplywasmimpl.cpp index f7380a10d9..eb3e50dec8 100644 --- a/src/network/access/qnetworkreplywasmimpl.cpp +++ b/src/network/access/qnetworkreplywasmimpl.cpp @@ -297,7 +297,7 @@ void QNetworkReplyWasmImplPrivate::doSendRequest() attr.destinationPath = destinationPath.constData(); auto url = request.url().toString().toUtf8(); - QEventDispatcherWasm::runOnMainThreadAsync([attr, url]() mutable { + QEventDispatcherWasm::runOnMainThread([attr, url]() mutable { emscripten_fetch(&attr, url); }); state = Working; |