Title: [288680] trunk/Source/WebCore
- Revision
- 288680
- Author
- commit-qu...@webkit.org
- Date
- 2022-01-27 10:27:22 -0800 (Thu, 27 Jan 2022)
Log Message
Detect failed ThreadableLoader creation in FileReaderLoader.
https://bugs.webkit.org/show_bug.cgi?id=235566
Patch by Gavin Phillips <gavi...@apple.com> on 2022-01-27
Reviewed by Youenn Fablet.
When we fail to successfully create a ThreadableLoader in FileReaderLoader we should catch
the failure and return early.
* Modules/fetch/FormDataConsumer.cpp:
(WebCore::FormDataConsumer::consumeBlob):
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::start):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (288679 => 288680)
--- trunk/Source/WebCore/ChangeLog 2022-01-27 18:17:09 UTC (rev 288679)
+++ trunk/Source/WebCore/ChangeLog 2022-01-27 18:27:22 UTC (rev 288680)
@@ -1,3 +1,18 @@
+2022-01-27 Gavin Phillips <gavi...@apple.com>
+
+ Detect failed ThreadableLoader creation in FileReaderLoader.
+ https://bugs.webkit.org/show_bug.cgi?id=235566
+
+ Reviewed by Youenn Fablet.
+
+ When we fail to successfully create a ThreadableLoader in FileReaderLoader we should catch
+ the failure and return early.
+
+ * Modules/fetch/FormDataConsumer.cpp:
+ (WebCore::FormDataConsumer::consumeBlob):
+ * fileapi/FileReaderLoader.cpp:
+ (WebCore::FileReaderLoader::start):
+
2022-01-27 Alexander Mikhaylenko <al...@gnome.org>
[GTK] Support accent colors
Modified: trunk/Source/WebCore/Modules/fetch/FormDataConsumer.cpp (288679 => 288680)
--- trunk/Source/WebCore/Modules/fetch/FormDataConsumer.cpp 2022-01-27 18:17:09 UTC (rev 288679)
+++ trunk/Source/WebCore/Modules/fetch/FormDataConsumer.cpp 2022-01-27 18:27:22 UTC (rev 288680)
@@ -95,6 +95,9 @@
return;
auto loader = std::exchange(weakThis->m_blobLoader, { });
+ if (!loader)
+ return;
+
if (auto optionalErrorCode = loader->errorCode()) {
if (weakThis->m_callback)
weakThis->m_callback(Exception { InvalidStateError, "Failed to read form data blob"_s });
@@ -107,7 +110,7 @@
m_blobLoader->start(blobURL, m_context.get(), FileReaderLoader::ReadAsArrayBuffer);
- if (!m_blobLoader->isLoading()) {
+ if (!m_blobLoader || !m_blobLoader->isLoading()) {
m_callback(Exception { InvalidStateError, "Unable to read form data blob"_s });
m_blobLoader = nullptr;
}
Modified: trunk/Source/WebCore/fileapi/FileReaderLoader.cpp (288679 => 288680)
--- trunk/Source/WebCore/fileapi/FileReaderLoader.cpp 2022-01-27 18:17:09 UTC (rev 288679)
+++ trunk/Source/WebCore/fileapi/FileReaderLoader.cpp 2022-01-27 18:27:22 UTC (rev 288680)
@@ -101,9 +101,12 @@
options.mode = FetchOptions::Mode::SameOrigin;
options.contentSecurityPolicyEnforcement = ContentSecurityPolicyEnforcement::DoNotEnforce;
- if (m_client)
- m_loader = ThreadableLoader::create(*scriptExecutionContext, *this, WTFMove(request), options);
- else
+ if (m_client) {
+ auto loader = ThreadableLoader::create(*scriptExecutionContext, *this, WTFMove(request), options);
+ if (!loader)
+ return;
+ std::exchange(m_loader, loader);
+ } else
ThreadableLoader::loadResourceSynchronously(*scriptExecutionContext, WTFMove(request), *this, options);
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes