facebook / facebook/infer

[Question] how to define propagations of Java lambda functions?

Open
#1,890 0 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
OCaml
Stars
15.7k
Forks
2.1k
Avg merge
19h 36m
Merged PRs (30d)
13

Description

This question is about how to define propagations of Java lambda functions.

Consider a Java map example:
```
HashMap m = ...; // create a map
m.put("k1", taint_source); // add a taint source into the map
m.forEach((k, v) -> sink_f(v)); // enumerate the map items, and pass the values to a sink function
```

Currently, the pulse analysis won't propagate taint_source to v in the lambda function. How can we introduce such a propagation?

Something like the following doesn't work:
```
{ "procedure_regex": "java\\.util\\.\\(Map\\|HashMap\\).*\\.forEach",
"taint_target": ["ArgumentPositions", [0]]
}
```
Is there a work-around?

Thanks!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.