Skip to content

Conversation

@jbj
Copy link
Contributor

@jbj jbj commented Nov 29, 2018

The nullValue predicate performs a slow custom data-flow analysis to find possible null values. It's so slow that it timed out after 1200s on Wireshark.

In UnsafeCreateProcessCall.ql, the values found with nullValue were used as sources in another data-flow analysis. By using the NullValue class as sink instead of nullValue, we avoid the slow-down of doing data flow twice. The NullValue class is essentially the base case of nullValue. Confusing names, yes.

I'll open the same PR for ql:master when this is merged.

The `nullValue` predicate performs a slow custom data-flow analysis to
find possible null values. It's so slow that it timed out after 1200s on
Wireshark.

In `UnsafeCreateProcessCall.ql`, the values found with `nullValue` were
used as sources in another data-flow analysis. By using the `NullValue`
class as sink instead of `nullValue`, we avoid the slow-down of doing
data flow twice. The `NullValue` class is essentially the base case of
`nullValue`. Confusing names, yes.
@jbj jbj added the C++ label Nov 29, 2018
@jbj jbj added this to the 1.19 milestone Nov 29, 2018
@jbj jbj requested a review from a team as a code owner November 29, 2018 12:50
Copy link
Contributor

@geoffw0 geoffw0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Improvement for me is 921s -> 741s, with the latter probably representing a lot of stuff that would be cached. bbSuccessorEntryReachesDefOrUse is no longer an expensive predicate. I couldn't find any real-world results to verify correctness, but the (fairly thorough) tests pass.

@geoffw0 geoffw0 merged commit 453529e into github:rc/1.19 Nov 30, 2018
cklin pushed a commit that referenced this pull request May 23, 2022
Remove `CODEQL_REDUCE_FILES_FOLDERS_RELATIONS`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants