mirror of
https://github.com/github/codeql.git
synced 2025-12-21 19:26:31 +01:00
Fixing NumpyLoadCall
This commit is contained in:
@@ -17,22 +17,26 @@ private module Numpy {
|
|||||||
/**
|
/**
|
||||||
* A call to `numpy.load`
|
* A call to `numpy.load`
|
||||||
* See https://pypi.org/project/numpy/
|
* See https://pypi.org/project/numpy/
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
private class PandasReadPickleCall extends Decoding::Range, DataFlow::CallCfgNode {
|
private class NumpyLoadCall extends Decoding::Range, API::CallNode {
|
||||||
PandasReadPickleCall() {
|
NumpyLoadCall() { this = API::moduleImport("numpy").getMember("load").getACall() }
|
||||||
this = API::moduleImport("numpy").getMember("load").getACall() and
|
|
||||||
this.getArgByName("allow_pickle").asExpr() = any(True t)
|
override predicate mayExecuteInput() {
|
||||||
|
this.getParameter(2, "allow_pickle")
|
||||||
|
.getAValueReachingSink()
|
||||||
|
.asExpr()
|
||||||
|
.(ImmutableLiteral)
|
||||||
|
.booleanValue() = true
|
||||||
}
|
}
|
||||||
|
|
||||||
override predicate mayExecuteInput() { any() }
|
override DataFlow::Node getAnInput() { result = this.getParameter(0, "filename").asSink() }
|
||||||
|
|
||||||
override DataFlow::Node getAnInput() {
|
|
||||||
result in [this.getArg(0), this.getArgByName("filename")]
|
|
||||||
}
|
|
||||||
|
|
||||||
override DataFlow::Node getOutput() { result = this }
|
override DataFlow::Node getOutput() { result = this }
|
||||||
|
|
||||||
override string getFormat() { result = "numpy" }
|
override string getFormat() {
|
||||||
|
result = "numpy"
|
||||||
|
or
|
||||||
|
this.mayExecuteInput() and result = "pickle"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user