diff --git a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp index de316c795ab5c..212a81c2b6cc6 100644 --- a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp +++ b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp @@ -617,6 +617,9 @@ Protocol::ErrorStringOr InspectorDebuggerAgent::continueToLocation(Refresumed(); + return makeUnexpected("Missing script for scriptId in given location"_s); + } + auto scriptIterator = m_scripts.find(sourceID); if (scriptIterator == m_scripts.end()) { m_debugger.continueProgram(); @@ -1110,7 +1119,11 @@ Protocol::ErrorStringOr InspectorDebuggerAgent::continueToLocation(Ref>> InspectorDebuggerAgent::searchInContent(const Protocol::Debugger::ScriptId& scriptId, const String& query, std::optional&& caseSensitive, std::optional&& isRegex) { - auto it = m_scripts.find(parseIntegerAllowingTrailingJunk(scriptId).value_or(0)); + auto sourceID = parseIntegerAllowingTrailingJunk(scriptId).value_or(JSC::noSourceID); + if (!m_scripts.isValidKey(sourceID)) + return makeUnexpected("Missing script for given scriptId"_s); + + auto it = m_scripts.find(sourceID); if (it == m_scripts.end()) return makeUnexpected("Missing script for given scriptId"_s); @@ -1119,7 +1132,11 @@ Protocol::ErrorStringOr>> Protocol::ErrorStringOr InspectorDebuggerAgent::getScriptSource(const Protocol::Debugger::ScriptId& scriptId) { - auto it = m_scripts.find(parseIntegerAllowingTrailingJunk(scriptId).value_or(0)); + auto sourceID = parseIntegerAllowingTrailingJunk(scriptId).value_or(JSC::noSourceID); + if (!m_scripts.isValidKey(sourceID)) + return makeUnexpected("Missing script for given scriptId"_s); + + auto it = m_scripts.find(sourceID); if (it == m_scripts.end()) return makeUnexpected("Missing script for given scriptId"_s); @@ -1167,6 +1184,9 @@ Protocol::ErrorStringOr>> Inspec if (startLineNumber == endLineNumber && endColumnNumber < startColumnNumber) return makeUnexpected("Cannot have columnNumber of given end be before columnNumber of given start"_s); + if (!m_scripts.isValidKey(startSourceID)) + return makeUnexpected("Missing script for scriptId in given start"_s); + auto scriptIterator = m_scripts.find(startSourceID); if (scriptIterator == m_scripts.end()) return makeUnexpected("Missing script for scriptId in given start"_s);