Title: [276954] trunk/Source/WebKit
- Revision
- 276954
- Author
- commit-qu...@webkit.org
- Date
- 2021-05-04 05:38:18 -0700 (Tue, 04 May 2021)
Log Message
[GTK] segmentation fault in WebKit::IconDatabase::loadIconForPageURL
https://bugs.webkit.org/show_bug.cgi?id=225279
Patch by Jim Mason <jma...@ibinx.com> on 2021-05-04
Reviewed by Carlos Garcia Campos.
* UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::setIconForPageURL):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (276953 => 276954)
--- trunk/Source/WebKit/ChangeLog 2021-05-04 11:13:37 UTC (rev 276953)
+++ trunk/Source/WebKit/ChangeLog 2021-05-04 12:38:18 UTC (rev 276954)
@@ -1,3 +1,14 @@
+2021-05-04 Jim Mason <jma...@ibinx.com>
+
+ [GTK] segmentation fault in WebKit::IconDatabase::loadIconForPageURL
+ https://bugs.webkit.org/show_bug.cgi?id=225279
+
+ Reviewed by Carlos Garcia Campos.
+
+ * UIProcess/API/glib/IconDatabase.cpp:
+ (WebKit::IconDatabase::loadIconForPageURL):
+ (WebKit::IconDatabase::setIconForPageURL):
+
2021-05-04 Youenn Fablet <you...@apple.com>
Use OptionSet for MediaProducer::MediaStateFlags
Modified: trunk/Source/WebKit/UIProcess/API/glib/IconDatabase.cpp (276953 => 276954)
--- trunk/Source/WebKit/UIProcess/API/glib/IconDatabase.cpp 2021-05-04 11:13:37 UTC (rev 276953)
+++ trunk/Source/WebKit/UIProcess/API/glib/IconDatabase.cpp 2021-05-04 12:38:18 UTC (rev 276954)
@@ -581,7 +581,14 @@
completionHandler(nullptr);
return;
}
- addResult.iterator->value.first = image->nativeImageForCurrentFrame()->platformImage();
+
+ auto nativeImage = image->nativeImageForCurrentFrame();
+ if (!nativeImage) {
+ completionHandler(nullptr);
+ return;
+ }
+
+ addResult.iterator->value.first = nativeImage->platformImage();
}
auto icon = addResult.iterator->value.first;
@@ -611,11 +618,12 @@
LockHolder lockHolder(m_loadedIconsLock);
auto addResult = m_loadedIcons.set(iconURL, std::make_pair<PlatformImagePtr, MonotonicTime>(nullptr, { }));
if (iconDataSize) {
+ RefPtr<NativeImage> nativeImage;
auto image = BitmapImage::create();
- if (image->setData(SharedBuffer::create(iconData, iconDataSize), true) < EncodedDataStatus::SizeAvailable)
+ if (image->setData(SharedBuffer::create(iconData, iconDataSize), true) >= EncodedDataStatus::SizeAvailable && (nativeImage = image->nativeImageForCurrentFrame()))
+ addResult.iterator->value.first = nativeImage->platformImage();
+ else
result = false;
- else
- addResult.iterator->value.first = image->nativeImageForCurrentFrame()->platformImage();
}
}
startClearLoadedIconsTimer();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes