Bug 175196 - Web Inspector: REGRESSION (r220233): Check for null pointer passed to WebGLRenderingContextBase::deleteProgram
Summary: Web Inspector: REGRESSION (r220233): Check for null pointer passed to WebGLRe...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Matt Baker
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-08-04 10:50 PDT by Matt Baker
Modified: 2017-08-04 11:57 PDT (History)
13 users (show)

See Also:


Attachments
Patch (1.59 KB, patch)
2017-08-04 10:52 PDT, Matt Baker
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Baker 2017-08-04 10:50:36 PDT
Summary:
Check for null pointer passed to WebGLRenderingContextBase::deleteProgram. Apparently the WebGLProgram* can be null. Hit while running LayoutTests/fast/canvas/webgl/webgl-draw-buffers.html.

Introduced in http://trac.webkit.org/changeset/220233.

ASSERTION FAILED: program
/Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp(1578) : void WebCore::WebGLRenderingContextBase::deleteProgram(WebCore::WebGLProgram *)
1   0x659bfc31d WTFCrash
2   0x64efd31c7 WebCore::WebGLRenderingContextBase::deleteProgram(WebCore::WebGLProgram*)
3   0x64debed62 WebCore::jsWebGLRenderingContextPrototypeFunctionDeleteProgramBody(JSC::ExecState*, WebCore::JSWebGLRenderingContext*, JSC::ThrowScope&)
4   0x64dea637e long long WebCore::IDLOperation<WebCore::JSWebGLRenderingContext>::call<&(WebCore::jsWebGLRenderingContextPrototypeFunctionDeleteProgramBody(JSC::ExecState*, WebCore::JSWebGLRenderingContext*, JSC::ThrowScope&)), (WebCore::CastedThisErrorBehavior)0>(JSC::ExecState&, char const*)
5   0x64dea610c WebCore::jsWebGLRenderingContextPrototypeFunctionDeleteProgram(JSC::ExecState*)
6   0x256524001028
7   0x659781cfd llint_entry
8   0x659781cfd llint_entry
9   0x659781d77 llint_entry
10  0x659781d77 llint_entry
11  0x659781d77 llint_entry
12  0x65977a237 vmEntryToJavaScript
13  0x6595542ce JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
14  0x659503798 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::ExecState*, JSC::JSObject*)
15  0x658d88c88 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
16  0x658d88e40 JSC::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
17  0x64e8d7bbb WebCore::JSMainThreadExecState::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
18  0x64e8d79a8 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&, WebCore::ExceptionDetails*)
19  0x64e8d7c9d WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&, WebCore::ExceptionDetails*)
20  0x64e8ed562 WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&)
21  0x64e8ebb96 WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport)
22  0x64d08de20 WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&, WTF::TextPosition const&)
23  0x64d08dc8f WebCore::HTMLScriptRunner::execute(WTF::Ref<WebCore::ScriptElement>&&, WTF::TextPosition const&)
24  0x64cfb21b2 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()
25  0x64cfb2713 WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&)
26  0x64cfb13b8 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
27  0x64cfb0f0b WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)
28  0x64cfb4119 WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution()
29  0x64cfb451e WebCore::HTMLDocumentParser::notifyFinished(WebCore::PendingScript&)
30  0x64cfb457c non-virtual thunk to WebCore::HTMLDocumentParser::notifyFinished(WebCore::PendingScript&)
31  0x64e3af8c7 WebCore::PendingScript::notifyClientFinished()
LEAK: 1 WebPageProxy
Comment 1 Radar WebKit Bug Importer 2017-08-04 10:50:52 PDT
<rdar://problem/33727603>
Comment 2 Matt Baker 2017-08-04 10:52:00 PDT
Created attachment 317257 [details]
Patch
Comment 3 Devin Rousso 2017-08-04 10:54:14 PDT
Comment on attachment 317257 [details]
Patch

r=me
Comment 4 WebKit Commit Bot 2017-08-04 11:57:07 PDT
Comment on attachment 317257 [details]
Patch

Clearing flags on attachment: 317257

Committed r220281: <http://trac.webkit.org/changeset/220281>
Comment 5 WebKit Commit Bot 2017-08-04 11:57:08 PDT
All reviewed patches have been landed.  Closing bug.