Merge pull request #55 from microsoft/dilan/chanel-sql-tedious

Chanel PR (SQL Tedious Package)
This commit is contained in:
Chanel
2024-02-28 11:13:22 -08:00
committed by GitHub

View File

@@ -454,3 +454,27 @@ private module SpannerCsv {
}
}
}
/**
* Provides classes modeling the `tedious` package.
*/
private module Tedious {
API::Node tedious() { result = API::moduleImport("tedious")}
class QueryCall extends DatabaseAccess, API::CallNode {
QueryCall(){
this = tedious().getMember("Connection").getInstance().getMember("execSql").getACall()
}
override DataFlow::Node getAQueryArgument(){
exists(API::NewNode request |
request = tedious().getMember("Request").getAnInstantiation() and
this.getParameter(0).asSink() = request.getReturn().getAValueReachableFromSource() and
result = request.getArgument(0)
)
}
}
class QueryString extends SQL::SqlString {
QueryString() {this = any(QueryCall qc).getAQueryArgument()}
}
}