File tree Expand file tree Collapse file tree
java/ql/lib/semmle/code/java/environment Expand file tree Collapse file tree 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