Title: [95038] trunk
- Revision
- 95038
- Author
- joep...@webkit.org
- Date
- 2011-09-13 12:24:52 -0700 (Tue, 13 Sep 2011)
Log Message
<http://webkit.org/b/67983> CRASH under WebCore::ArchiveResourceCollection::addAllResources loading WebArchive
Reviewed by Darin Adler.
Source/WebCore:
Null mimetypes are okay for subresources, but as previously discovered
in bug 41082 they were required for main resources. Here we ensure
that they are required for main resources, but we allow null mimetypes
for subresources.
To fix a crash for bad input we never add a null ArchiveResource to the
Archive's subresource collection. It is useless and causes crashes whenever
someone iterates the Archive's subresource collection.
Test: webarchive/loading/test-loading-archive-subresource-null-mimetype.html
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createResource):
Allow a null mimetype, just type check from the dictionary.
(WebCore::LegacyWebArchive::extract):
Require a mimetype for the main resource. Do not add null
subresources to the subresource list.
LayoutTests:
Test a WebArchive that has been constructed to have a null
mimetype for a subresource.
* webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt: Added.
* webarchive/loading/test-loading-archive-subresource-null-mimetype.html: Added.
* webarchive/loading/resources/subresource-null-mimetype.webarchive: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (95037 => 95038)
--- trunk/LayoutTests/ChangeLog 2011-09-13 19:18:27 UTC (rev 95037)
+++ trunk/LayoutTests/ChangeLog 2011-09-13 19:24:52 UTC (rev 95038)
@@ -1,3 +1,17 @@
+2011-09-13 Joseph Pecoraro <joep...@webkit.org>
+
+ CRASH under WebCore::ArchiveResourceCollection::addAllResources loading WebArchive
+ https://bugs.webkit.org/show_bug.cgi?id=67983
+
+ Reviewed by Darin Adler.
+
+ Test a WebArchive that has been constructed to have a null
+ mimetype for a subresource.
+
+ * webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt: Added.
+ * webarchive/loading/test-loading-archive-subresource-null-mimetype.html: Added.
+ * webarchive/loading/resources/subresource-null-mimetype.webarchive: Added.
+
2011-09-13 Ryosuke Niwa <rn...@webkit.org>
Update chromium test expectation since fast/borders/border-image-omit-right-slice.html no longer hits an assertion.
Added: trunk/LayoutTests/webarchive/loading/resources/subresource-null-mimetype.webarchive (0 => 95038)
--- trunk/LayoutTests/webarchive/loading/resources/subresource-null-mimetype.webarchive (rev 0)
+++ trunk/LayoutTests/webarchive/loading/resources/subresource-null-mimetype.webarchive 2011-09-13 19:24:52 UTC (rev 95038)
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>WebMainResource</key>
+ <dict>
+ <key>WebResourceData</key>
+ <data>
+ PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxpbWcgc3JjPSJ0ZXN0LnBuZyI+
+ PC9ib2R5PjwvaHRtbD4=
+ </data>
+ <key>WebResourceFrameName</key>
+ <string></string>
+ <key>WebResourceMIMEType</key>
+ <string>text/html</string>
+ <key>WebResourceTextEncodingName</key>
+ <string>UTF-8</string>
+ <key>WebResourceURL</key>
+ <string>file:///test-archive.html</string>
+ </dict>
+ <key>WebSubresources</key>
+ <array>
+ <dict>
+ <key>WebResourceData</key>
+ <data>
+ iVBORw0KGgoAAAANSUhEUgAAACYAAAAkCAIAAABql9/yAAAWmGlD
+ Q1BJQ0MgUHJvZmlsZQAAeAGtWHdUFM+y7tnMskvOOeecc85BckZk
+ yTlnJIrwA8kCIogIKhIURCWoqCRFREmKIElQERBQDCgiyBv06r3v
+ nHf/e3POzHxdU13T09XTVfUBwKRECgsLQlABEBwSFWFtqMPl6OTM
+ hZ0BOMAJ6IAkECF5RoZpW1qagf96fH0OoIOHT8UPbP1Xtf/7AbWX
+ d6QnAJAl/NjDK9IzGMY34FPNMywiCgDEJiznjY0KgzGSDsZ0EfAA
+ YSx0gH1/Y7UD7PEbH9ihi7C11oV1vADAEUikCF8AyMNgOVeMpy9s
+ h7wQAAxNiJd/CADUF2Cs4elHgnUZ38A6YsHBoTBmooKxkMd/2PH9
+ D0wiefy1SSL5/sW/vwXuCb9Yzz8yLIgU/6vx/3kJDoqG5+vXwQBf
+ CWFROtbwnQ+eMyb/KGPbP9gv2sjuD07ws3X4g0M8Dln8wZ6RuvBc
+ /u4bGGr6146Xt57+H3lkjM1fnOCne+iPPIBkcjDXv95LioDRv3BY
+ lOXfMYQEHTpYN790fCIM/tr3jtS3+SOPgp31B/v4Gxj/wWFBv9bc
+ r74R0dZ/v8U7xO5vXy+SnukffWAG9IEe4AK6wB+EAG8QDEhwSw9u
+ RYIwEAS34qO842D/A6AbGhYf4e/rF8WlDa9YbzEu4xBPCTEuGSlp
+ aXCw/g90APhs/WtdQwwj/5ZFdgGgejCml/+WuTUC0DEJL7u2f8v4
+ QgEgogHoOu0ZHRHz2x7q4IYGeEAJ/1nMgAPwAiEgDmSAAlAFWvDo
+ TYAFsAVOwA14Aj94/BEgFhwFaSATnACFoBRUgGpwHtSDK+Aa6ABd
+ oAc8AENgFEyAGbAAlsAa2ARfwQ8IgrAQEaKFmCFOiB8ShWQgJUgD
+ 0ofMIGvICXKHfKEQKBo6Ch2DTkDFUAVUAzVArdBNqAcahMagF9Ai
+ tAp9gnYQSAQBQYdgRwggJBFKCG2EKcIWcRjhiwhHJCAyEPmIckQt
+ 4jKiHdGDGEJMIBYQa4gtJECSIxmQ3EhxpBJSF2mBdEb6ICOQycgc
+ ZBmyFtmMvIUcQD5FLiDXkd9RGBQtigsljlJFGaHsUJ6ocFQyKhdV
+ gapHtaP6UU9Ri6hN1E80Ec2GFkWroI3RjmhfdCw6E12GrkO3oe+j
+ J9BL6K8YDIYBI4hRxBhhnDABmERMLqYK04LpxoxhXmO2sFgsM1YU
+ q461wJKwUdhM7GnsZew97Dh2CbuNI8dx4mRwBjhnXAguHVeGa8Td
+ xY3jlnE/yKjI+MlUyCzIvMjiyQrILpDdIhshWyL7gafGC+LV8bb4
+ AHwavhzfjL+Pn8V/Jicn5yFXJrci9ydPJS8nv0r+kHyR/DuBhiBC
+ 0CW4EqIJ+YRLhG7CC8JnIpEoQNQiOhOjiPnEBmIfcZ64TUFLIUFh
+ TOFFkUJRSdFOMU7xnpKMkp9Sm9KNMoGyjPI65QjlOhUZlQCVLhWJ
+ Kpmqkuom1STVFjUttTS1BXUwdS51I/Ug9QoNlkaARp/GiyaD5jxN
+ H81rWiQtL60urSftMdoLtPdpl+gwdIJ0xnQBdCfortAN023S09DL
+ 0dvTx9FX0t+hX2BAMggwGDMEMRQwXGN4zrDDyM6ozejNmM3YzDjO
+ +I2JlUmLyZsph6mFaYJph5mLWZ85kLmIuYN5jgXFIsJixRLLcpbl
+ Pss6Kx2rKqsnaw7rNdZpNgSbCJs1WyLbebbHbFvsHOyG7GHsp9n7
+ 2Nc5GDi0OAI4Sjjucqxy0nJqcPpzlnDe43zHRc+lzRXEVc7Vz7XJ
+ zcZtxB3NXcM9zP2DR5DHjiedp4VnjhfPq8Trw1vC28u7ycfJZ853
+ lK+Jb5qfjF+J34//FP8A/zcBQQEHgSyBDoEVQSZBY8EEwSbBWSGi
+ kKZQuFCt0DNhjLCScKBwlfCoCEJEXsRPpFJkRBQhqiDqL1olOiaG
+ FlMWCxGrFZsUJ4hri8eIN4kvSjBImEmkS3RIvJfkk3SWLJIckPwp
+ JS8VJHVBakaaRtpEOl36lvQnGREZT5lKmWeyRFkD2RTZTtmPcqJy
+ 3nJn5abkaeXN5bPke+X3FBQVIhSaFVYV+RTdFc8oTirRKVkq5So9
+ VEYr6yinKHcpf1dRUIlSuabyQVVcNVC1UXVFTVDNW+2C2mt1HnWS
+ eo36ggaXhrvGOY0FTW5Nkmat5istXi0vrTqtZW1h7QDty9rvdaR0
+ InTadL7pqugm6XbrIfUM9XL0hvVp9O30K/TnDXgMfA2aDDYN5Q0T
+ DbuN0EamRkVGk8bsxp7GDcabJoomSSb9pgRTG9MK01dmImYRZrfM
+ EeYm5ifNZw/xHwo51GEBLIwtTlrMWQpahlvetsJYWVpVWr21lrY+
+ aj1gQ2tzxKbR5qutjm2B7YydkF20Xa89pb2rfYP9Nwc9h2KHBUdJ
+ xyTHIScWJ3+nTmess71znfOWi75LqcuSq7xrpuvzw4KH4w4PurG4
+ BbndOUJ5hHTkujva3cG90X2XZEGqJW15GHuc8dj01PU85bnmpeVV
+ 4rXqre5d7L3so+5T7LPiq+570nfVT9OvzG/dX9e/wv9jgFFAdcC3
+ QIvAS4H7QQ5BLcG4YPfgmyE0IYEh/aEcoXGhY2GiYZlhC+Eq4aXh
+ mxGmEXWRUOThyM4oOjjReBwtFH08ejFGI6YyZjvWPvZ6HHVcSNzj
+ eJH47PjlBIOEi4moRM/E3qPcR9OOLiZpJ9UkQ8keyb0pvCkZKUup
+ hqn1afi0wLQn6VLpxelfjjkcu5XBnpGa8fq44fGmTIrMiMzJLNWs
+ 6n9Q//j/M5wtm306+2eOV86jE1Inyk7s5nrmPsqTzivP28/3yR8u
+ UCg4W4gpDCl8XqRZVF9MXZxQ/Pqk+cn2Eq6SnJIvpUdKB8vkyqpP
+ 4U9Fn1ooNyvvPM13uvD0boVfxUSlTmXLGbYz2We+VXlVjZ/VOttc
+ zV59onrnnP+5qRrDmvZagdqy85jzMeffXrC/MHBR6WJDHUvdibq9
+ SyGXFuqt6/sbFBsaGtkaC5oQTdFNq5ddL49e0bvS2SzeXNPC0HLi
+ KrgaffVdq3vr82um13qvK11vvsF/40wbbVtOO9Qe377Z4dex0OnU
+ OXbT5GbvLdVbbbclbl/q4u6qvEN/p+Au/m7G3f17Cfe2usO613t8
+ e173Humd6XPse9Zv1T983/T+wwcGD/oGtAfuPVR/2DWoMnjzkdKj
+ jiGFofbH8o/bnsg/aRtWGG4fURzpHFUevTWmNnZ3XHO856ne0wfP
+ jJ8NTRyaGHtu93xq0nVyYcprauVF0IuP0zHTP2ZSZ9GzOXNUc2Xz
+ bPO1L4VftiwoLNxZ1Ft8/Mrm1cxrz9drbyLf7C5lvCW+LVvmXG5Y
+ kVnpWjVYHX3n8m5pLWztx3rmBvXGmfdC72980PrweNNxc+ljxMf9
+ T7mfmT9f+iL3pXfLcmv+a/DXH99ytpm3678rfR/YcdhZ/hG7i90t
+ 3xPeu/XT9OfsfvD+fhgpgvQrF0DCV4SPDwCfLsF5ghMAtKMA4Cl+
+ 56e/NOD0FU6qETC2h3ihqwgnJD3yDaoVnYcJxlrh1Mj48UzkNAQc
+ EUWBpaSmoqfmoBGj1aA7RO/LkMCYx1TN3Mxyk/UB2wz7R04KLklu
+ a55w3hy+Kv4WgduC94VGhadE5kUXxZbEVyU+SH6W+iGDkiXI0cmz
+ KvAoCigJK4upiKuKq4mqC2sIavJrcWtz6rDpMuvR6VMaYA32Db8Z
+ bRi/NpkyfWzWY952qMGi2rLcqsT6pE2xbZFdoX2+Q45jltMx52SX
+ ONeIw4FuPkc83b1JAR7hnke9srwLfcp9a/wa/FsC2gNvB3UHPwgZ
+ Dp0KWwnfjaSLkog2jCHFJsaVxDcl9CVOH91MRqcwpQqlyadrHTPM
+ MD9ulWmX5fCPc7ZrzuETbrlueW757gVehUFFicX5J+tK7pY+L9so
+ R51mqZCq1D/jXBVy9lh1xblrNU9q1y6QXRSsM7jkVZ/WUN3Y1TR1
+ +UszZYvgVZVW42s2151uuLV5tPt0BHSG3Ay/FXU7pivuTsLdpHtp
+ 3dk9p3ov9XX1j95fevD9IXGQ+5HskMFjxyf+wwkjWaNFY2Xjp56W
+ PCucyHmeMZk0FfMiZNpnxm3Wfs58Xv+l2oL8ouQr0deCb/iWuN6y
+ LzOvMKzSvKNcI1/HbiA3fr7f/rCx+eLjnU8VnyO+GG6xb33+Ovit
+ Zjvuu8UO/87uj/Hd+r3kn7b7Ivv7sP9FQT9UCvufBvkQVYKOxFhj
+ BXFkuC9kM/gh8n7CbWI7RSdlJ9Vt6n6aIdoZunf0XxlRTFTMzCwc
+ rDxsIuyKHIc4A7hSuU/xNPC28/XyDwoMC44IjQmPwbHvidiQ+IBE
+ n2SPVLd0t0yPbI9cj/w9hS7FW0rtyq0qTarn1SrUizWyNVO0orQD
+ ddx1bfUM9JUNRA3ZjYhGe8brJtOmD83azGsPFVokW4ZbeVu72Fjb
+ mtjp2Cs5SDjyOTE7U7ggXLZcVw7Puo0dGXTvJ/V5PPAc9HriPe7z
+ 3PeF36z/fMDLwIWgxeBXIUuh78I+R0CRNFH80YoxxrGuccHxyQn5
+ iWePXkm6nfww5WnqTNpi+tKx5YyV46uZ77Le/bOavZLz9sRS7qu8
+ xfyFgteFq0VbJ1ElDKVCZaqnzMrdTodWpFYWnjlX1Xq2t3ri3Lta
+ 5Hn2C8oX7esiLuXVNzT0Nc41fbtC2SzQonrVvNX5mvf1oBsRbXHt
+ SR3pnVk3T9wquH2yq+xOxd3qe3XdrT3dveN9K/0/H9ANiDzUGrR/
+ FDiU+rjkSf1w18iT0ZmxpfH1p5vPvkx8e74zuTe1Pw3NIGdRc+h5
+ zEvsAn6R6hXTa943kkuqbw2WrVZcV33fha8lrh/fKHhf/qF68/zH
+ 2k9Vn0u/5G6lf439FrRN+m63Y/JDY1dmj/8n8z7hr//DEBKIDWQZ
+ ygbNhd7APMCW40LILPBK5JwEFOEjcYliinKQ6j71XZou2jt0XfR3
+ GPoYB5nGmF+x/GTjZDfmiOGs5RrkXuVF8rHwiwqoC5oI2QkfEfET
+ DROLEU+USJPMksqVLpY5LXtO7pL8ZYWrijeUOpQ7VTpU29VuqF/V
+ uKJZp1WjXaFTqJull6wfYeBr6GxkZqxuImnKYUY02zVfOzRtMWR5
+ x6rVut6m2vaUXZ79MYd4xxAnD2d7FyNXlcNibpxHaN3xJLQH0hPh
+ hfRG+2B8sX5Yf0wAOhAVhAgGwT9D9kL3wzERlJGsUcLRSjGGsbZx
+ pPiQhPjE40fzk8qTa1LqUhvS6tMvHjuXUXG8JDMvK+OfpOyonKAT
+ nrlOeZb5RgU6hZpF2sVGJ61KDpf6lUWeSinPPn2y4kzlxTNXqtrP
+ 3qsePPe8Zrn2+wXiRa46uUuG9c4NwY0pTYWXa660Nne3DF192jp1
+ bfr69I2ptsn2Zx3jnSM3n9x6dHugq/9O792ee73dAz2jvXN9G/17
+ DygGOB5KDKo/Mhtyeez/JHb42Ej+aNlYxfiZp5XPTk+UPS+ZLJzK
+ e5E9fXwmfTZ5LnE+7mXcQuJi2qsTr8vf1C3deNu3PLoyv7r2bnsd
+ vUHznvOD+KbmR7tP4Z+Lvlzfmvj6bZv5u+qO64+k3bN7d3++PPD/
+ b57iICZgFACoYwTAbgQA05sAnG0FgH8Vjh/cAFgSAbBVBggtOGZw
+ GwIEI/5v/IDgmpMc0ABWwA+kgQYwB4fh+jgNricbQTeYAh8hckgA
+ 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
+ QmCC
+ </data>
+ <key>WebResourceResponse</key>
+ <data>
+ YnBsaXN0MDDUAQIDBAUGNjdYJHZlcnNpb25YJG9iamVjdHNZJGFy
+ Y2hpdmVyVCR0b3ASAAGGoKsHCB8lJi0uLzAxMlUkbnVsbNsJCgsM
+ DQ4PEBESExQVFhcYGRobHB0eUiQ2UiQyUiQ3UiQzUiQ4ViRjbGFz
+ c1IkNFIkOVIkMFIkNVIkMYAHEAeAAIACgAiACoAFgAkQCIAGEADT
+ DiAhIiMWW05TLnJlbGF0aXZlV05TLmJhc2WABIADgABfECdmaWxl
+ Oi8vL1VzZXJzL3BlY29yYXJvL0Rlc2t0b3AvdGVzdC5wbmfSJygp
+ KlokY2xhc3NuYW1lWCRjbGFzc2VzVU5TVVJMoissVU5TVVJMWE5T
+ T2JqZWN0I0G0HwxuhRs/EAJZaW1hZ2UvcG5nER0cI3/v////////
+ 0icoMzRdTlNVUkxSZXNwb25zZaI1LF1OU1VSTFJlc3BvbnNlXxAP
+ TlNLZXllZEFyY2hpdmVy0Tg5XxATV2ViUmVzb3VyY2VSZXNwb25z
+ ZYABAAgAEQAaACMALQAyADcAQwBJAGAAYwBmAGkAbABvAHYAeQB8
+ AH8AggCFAIcAiQCLAI0AjwCRAJMAlQCXAJkAmwCiAK4AtgC4ALoA
+ vADmAOsA9gD/AQUBCAEOARcBIAEiASwBLwE4AT0BSwFOAVwBbgFx
+ AYcAAAAAAAACAQAAAAAAAAA6AAAAAAAAAAAAAAAAAAABiQ==
+ </data>
+ <key>WebResourceURL</key>
+ <string>file:///test.png</string>
+ </dict>
+ </array>
+</dict>
+</plist>
Added: trunk/LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt (0 => 95038)
--- trunk/LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt (rev 0)
+++ trunk/LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt 2011-09-13 19:24:52 UTC (rev 95038)
@@ -0,0 +1,14 @@
+main frame - didStartProvisionalLoadForFrame
+main frame - didCommitLoadForFrame
+frame "<!--framePath //<!--frame0-->-->" - didStartProvisionalLoadForFrame
+resources/subresource-null-mimetype.webarchive - willSendRequest <NSURLRequest URL resources/subresource-null-mimetype.webarchive, main document URL test-loading-archive-subresource-null-mimetype.html, http method GET> redirectResponse (null)
+main frame - didFinishDocumentLoadForFrame
+<unknown> - didFinishLoading
+resources/subresource-null-mimetype.webarchive - didReceiveResponse <NSURLResponse resources/subresource-null-mimetype.webarchive, http status code 0>
+frame "<!--framePath //<!--frame0-->-->" - didCommitLoadForFrame
+frame "<!--framePath //<!--frame0-->-->" - didFinishDocumentLoadForFrame
+frame "<!--framePath //<!--frame0-->-->" - didHandleOnloadEventsForFrame
+main frame - didHandleOnloadEventsForFrame
+frame "<!--framePath //<!--frame0-->-->" - didFinishLoadForFrame
+main frame - didFinishLoadForFrame
+ This tests that doing a normal load of a webarchive with a null mimetype for a subresource does not crash.
Added: trunk/LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype.html (0 => 95038)
--- trunk/LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype.html (rev 0)
+++ trunk/LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype.html 2011-09-13 19:24:52 UTC (rev 95038)
@@ -0,0 +1,18 @@
+<html>
+<script>
+ if (window.layoutTestController) {
+ layoutTestController.dumpResourceLoadCallbacks();
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ function frameLoaded() {
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }
+</script>
+<body>
+ <iframe _onload_="frameLoaded();" src=""
+ This tests that doing a normal load of a webarchive with a null mimetype for a subresource does not crash.
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (95037 => 95038)
--- trunk/Source/WebCore/ChangeLog 2011-09-13 19:18:27 UTC (rev 95037)
+++ trunk/Source/WebCore/ChangeLog 2011-09-13 19:24:52 UTC (rev 95038)
@@ -1,3 +1,29 @@
+2011-09-13 Joseph Pecoraro <joep...@webkit.org>
+
+ CRASH under WebCore::ArchiveResourceCollection::addAllResources loading WebArchive
+ https://bugs.webkit.org/show_bug.cgi?id=67983
+
+ Reviewed by Darin Adler.
+
+ Null mimetypes are okay for subresources, but as previously discovered
+ in bug 41082 they were required for main resources. Here we ensure
+ that they are required for main resources, but we allow null mimetypes
+ for subresources.
+
+ To fix a crash for bad input we never add a null ArchiveResource to the
+ Archive's subresource collection. It is useless and causes crashes whenever
+ someone iterates the Archive's subresource collection.
+
+ Test: webarchive/loading/test-loading-archive-subresource-null-mimetype.html
+
+ * loader/archive/cf/LegacyWebArchive.cpp:
+ (WebCore::LegacyWebArchive::createResource):
+ Allow a null mimetype, just type check from the dictionary.
+
+ (WebCore::LegacyWebArchive::extract):
+ Require a mimetype for the main resource. Do not add null
+ subresources to the subresource list.
+
2011-09-13 Mihai Parparita <mih...@chromium.org>
[Chromium] Remove _javascript__engine from WebCore.gyp
Modified: trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp (95037 => 95038)
--- trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp 2011-09-13 19:18:27 UTC (rev 95037)
+++ trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp 2011-09-13 19:24:52 UTC (rev 95038)
@@ -199,7 +199,7 @@
}
CFStringRef mimeType = static_cast<CFStringRef>(CFDictionaryGetValue(dictionary, LegacyWebArchiveResourceMIMETypeKey));
- if (!mimeType || CFGetTypeID(mimeType) != CFStringGetTypeID()) {
+ if (mimeType && CFGetTypeID(mimeType) != CFStringGetTypeID()) {
LOG(Archives, "LegacyWebArchive - MIME type is not of type CFString, cannot create invalid resource");
return 0;
}
@@ -327,6 +327,11 @@
return false;
}
+ if (mainResource()->mimeType().isNull()) {
+ LOG(Archives, "LegacyWebArchive - Main resource MIME type is required, but was null.");
+ return false;
+ }
+
CFArrayRef subresourceArray = static_cast<CFArrayRef>(CFDictionaryGetValue(dictionary, LegacyWebArchiveSubresourcesKey));
if (subresourceArray && CFGetTypeID(subresourceArray) != CFArrayGetTypeID()) {
LOG(Archives, "LegacyWebArchive - Subresources is not the expected Array, aborting invalid WebArchive");
@@ -341,7 +346,9 @@
LOG(Archives, "LegacyWebArchive - Subresource is not expected CFDictionary, aborting invalid WebArchive");
return false;
}
- addSubresource(createResource(subresourceDict));
+
+ if (RefPtr<ArchiveResource> subresource = createResource(subresourceDict))
+ addSubresource(subresource.release());
}
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes