Regression(r119759): Heap-use-after-free in webkit_glue::WebURLLoaderImpl::Context...
authorgavinp@chromium.org <gavinp@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 12 Jan 2013 18:05:19 +0000 (18:05 +0000)
committergavinp@chromium.org <gavinp@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 12 Jan 2013 18:05:19 +0000 (18:05 +0000)
commit08f040b3e6a7b69fd4fd2562fc34c0dd6c4fc8b7
tree25df10c84c6d5d34613a2cdb915508b1ab9c75ee
parent4c5b913bc630a06f74834d52690350e534cdf1aa
Regression(r119759): Heap-use-after-free in webkit_glue::WebURLLoaderImpl::Context::OnReceivedResponse
https://bugs.webkit.org/show_bug.cgi?id=103563

A subresource could receive a body on a 404 if its call to CachedResource::error() resulted in a nested message loop.
That caused a crash when data was received, as the Subresource was in the Finished state already. Now when receiving
data we ignore these bodies, avoiding the crash.

Reviewed by Nate Chapin.

No new tests in WebKit, since it required a nested message loop which isn't present in chromium DumpRender tree.
There's a Chrome side browser test, see https://codereview.chromium.org/11778083/

* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::checkForHTTPStatusCodeError):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@139551 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/loader/SubresourceLoader.cpp