Files
codeql/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeFlowsTo.ql
Asger Feldthaus 5ab595da2e JS: Autoformat
2020-04-08 12:40:00 +01:00

17 lines
531 B
Plaintext

/**
* Test that fails to compile if the domain of `SourceNode` depends on `SourceNode.flowsTo` (recursively).
*
* This tests adds a negative dependency `flowsTo --!--> SourceNode`
* so that the undesired edge `SourceNode --> flowsTo` completes a negative cycle.
*/
import javascript
class BadSourceNode extends DataFlow::SourceNode {
BadSourceNode() { this.(DataFlow::PropRead).getPropertyName() = "foo" }
override predicate flowsTo(DataFlow::Node node) { not node instanceof DataFlow::SourceNode }
}
select "Success"