-
Notifications
You must be signed in to change notification settings - Fork 593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reroute cloud through IPC channel #10285
base: master
Are you sure you want to change the base?
Conversation
|
||
protected handleResponse(response: pxt.editor.CloudProxyResponse) { | ||
if (this.pendingMessages[response.id]) { | ||
this.pendingMessages[response.id](response); |
Check failure
Code scanning / CodeQL
Unvalidated dynamic method call High
user-controlled
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix AI 18 days ago
To fix the problem, we need to validate that response.id
corresponds to a valid function in this.pendingMessages
before invoking it. This can be done by checking if response.id
exists in this.pendingMessages
and if the corresponding value is a function. If either check fails, we should handle the error appropriately.
-
Copy modified lines R330-R332 -
Copy modified lines R334-R335
@@ -329,5 +329,8 @@ | ||
protected handleResponse(response: pxt.editor.CloudProxyResponse) { | ||
if (this.pendingMessages[response.id]) { | ||
this.pendingMessages[response.id](response); | ||
const pendingMessageHandler = this.pendingMessages[response.id]; | ||
if (pendingMessageHandler && typeof pendingMessageHandler === 'function') { | ||
pendingMessageHandler(response); | ||
delete this.pendingMessages[response.id]; | ||
} else { | ||
console.error(`Invalid response id: ${response.id}`); | ||
} |
no need to review this just yet; mostly just opening this for visibility. adds an alternate auth client that proxies cloud requests to the parent frame. in the future, i'll swap out the frame implementation with one that talks over the IPC channel to minecraft