File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed
semmle/code/java/dataflow/internal Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ category : minorAnalysis
3
+ ---
4
+ * A bug has been fixed in the heuristic identification of uncertain control
5
+ flow, which is used to filter data flow in order to improve performance and
6
+ reduce false positives. This fix means that slightly more code is identified
7
+ and hence pruned from data flow.
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ private import ContainerFlow
8
8
private import semmle.code.java.dataflow.FlowSteps
9
9
private import semmle.code.java.dataflow.FlowSummary
10
10
private import semmle.code.java.dataflow.ExternalFlow
11
+ private import semmle.code.java.dataflow.InstanceAccess
11
12
private import FlowSummaryImpl as FlowSummaryImpl
12
13
private import DataFlowNodes
13
14
private import codeql.dataflow.VariableCapture as VariableCapture
@@ -710,8 +711,14 @@ class DataFlowSecondLevelScope extends TDataFlowSecondLevelScope {
710
711
}
711
712
712
713
private Expr getRelatedExpr ( Node n ) {
713
- n .asExpr ( ) = result or
714
- n .( PostUpdateNode ) .getPreUpdateNode ( ) .asExpr ( ) = result
714
+ n .asExpr ( ) = result
715
+ or
716
+ exists ( InstanceAccessExt iae | iae = n .( ImplicitInstanceAccess ) .getInstanceAccess ( ) |
717
+ iae .isImplicitFieldQualifier ( result ) or
718
+ iae .isImplicitMethodQualifier ( result )
719
+ )
720
+ or
721
+ getRelatedExpr ( n .( PostUpdateNode ) .getPreUpdateNode ( ) ) = result
715
722
}
716
723
717
724
/** Gets the second-level scope containing the node `n`, if any. */
You can’t perform that action at this time.
0 commit comments