Skip to content

JS: Track functions through props and returns#3639

Closed
asgerf wants to merge 2 commits into
github:masterfrom
asger-semmle:js/track-all-the-functions
Closed

JS: Track functions through props and returns#3639
asgerf wants to merge 2 commits into
github:masterfrom
asger-semmle:js/track-all-the-functions

Conversation

@asgerf
Copy link
Copy Markdown
Contributor

@asgerf asgerf commented Jun 8, 2020

Addresses https://github.com/github/codeql-javascript-team/issues/18 by tracking functions through properties and returns, but not into calls (to avoid FPs from callbacks).

We avoid tracking anything that's a class member as those are tracked via the class instead. We also omit functions in externs for purely speculated performance reasons.

Evaluations:

  • Security/smoke-test looks interesting, about 1% slowdown but with a surprising number of new call edges.
  • Security/nightly also shows a lot of new call edges, but runtime was too flaky to be conclusive, even with the reruns it looks a little fishy.
  • Security/big-apps times out on gecko.

TODO

  • Investigate the TP rate of these call edges
  • Larger evaluation

@asgerf asgerf added JS Awaiting evaluation Do not merge yet, this PR is waiting for an evaluation to finish labels Jun 8, 2020
@asgerf
Copy link
Copy Markdown
Contributor Author

asgerf commented Jun 12, 2020

It doesn't quite scale on gecko, and tweaking the join order doesn't seem to be resolve the issue. I'll close and try something less ambitious.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Awaiting evaluation Do not merge yet, this PR is waiting for an evaluation to finish JS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants