File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed
java/ql/lib/semmle/code/java/environment Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -269,18 +269,24 @@ private MethodCall getSystemPropertyFromSpringProperties(string propertyName) {
269269 * for final variables.
270270 */
271271private predicate localExprFlowPlusInitializers ( Expr e1 , Expr e2 ) {
272+ e1 = e2 or
272273 localFlowPlusInitializers ( DataFlow:: exprNode ( e1 ) , DataFlow:: exprNode ( e2 ) )
273274}
274275
276+ private predicate localFlowPlusInitializers ( DataFlow:: Node pred , DataFlow:: Node succ ) =
277+ fastTC( localFlowStepPlusInitializers / 2 ) ( pred , succ )
278+
275279/**
276- * Holds if data can flow from `pred` to `succ` in zero or more
277- * local (intra-procedural) steps or via instance or static variable intializers
280+ * Holds if data can flow from `pred` to `succ` in a
281+ * local (intra-procedural) step or via instance or static variable intializers
278282 * for final variables.
279283 */
280- private predicate localFlowPlusInitializers ( DataFlow:: Node pred , DataFlow:: Node succ ) {
281- exists ( Variable v | v .isFinal ( ) and pred .asExpr ( ) = v .getInitializer ( ) |
282- DataFlow:: localFlow ( DataFlow:: exprNode ( v .getAnAccess ( ) ) , succ )
284+ private predicate localFlowStepPlusInitializers ( DataFlow:: Node pred , DataFlow:: Node succ ) {
285+ exists ( Variable v |
286+ v .isFinal ( ) and
287+ pred .asExpr ( ) = v .getInitializer ( ) and
288+ succ .asExpr ( ) = v .getAnAccess ( )
283289 )
284290 or
285- DataFlow:: localFlow ( pred , succ )
291+ DataFlow:: localFlowStep ( pred , succ )
286292}
You can’t perform that action at this time.
0 commit comments