mirror of
https://github.com/github/codeql.git
synced 2026-04-22 15:25:18 +02:00
C#: Move parallelsink to the library qlpack.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import csharp
|
||||
|
||||
abstract class ParallelSink extends DataFlow::Node { }
|
||||
|
||||
class LambdaParallelSink extends ParallelSink {
|
||||
LambdaParallelSink() {
|
||||
exists(Class c, Method m, MethodCall mc, Expr e | e = this.asExpr() |
|
||||
c.getABaseType*().hasFullyQualifiedName("System.Threading.Tasks", "Parallel") and
|
||||
c.getAMethod() = m and
|
||||
m.getName() = "Invoke" and
|
||||
m.getACall() = mc and
|
||||
mc.getAnArgument() = e
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
class ThreadStartParallelSink extends ParallelSink {
|
||||
ThreadStartParallelSink() {
|
||||
exists(DelegateCreation dc, Expr e | e = this.asExpr() |
|
||||
dc.getArgument() = e and
|
||||
dc.getType().getName().matches("%Start")
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,24 +1,6 @@
|
||||
/**
|
||||
* DEPRECATED: Use `ParallelSink` from `flowsinks.ParallelSink` instead.
|
||||
*/
|
||||
|
||||
import csharp
|
||||
|
||||
abstract class ParallelSink extends DataFlow::Node { }
|
||||
|
||||
class LambdaParallelSink extends ParallelSink {
|
||||
LambdaParallelSink() {
|
||||
exists(Class c, Method m, MethodCall mc, Expr e | e = this.asExpr() |
|
||||
c.getABaseType*().hasFullyQualifiedName("System.Threading.Tasks", "Parallel") and
|
||||
c.getAMethod() = m and
|
||||
m.getName() = "Invoke" and
|
||||
m.getACall() = mc and
|
||||
mc.getAnArgument() = e
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
class ThreadStartParallelSink extends ParallelSink {
|
||||
ThreadStartParallelSink() {
|
||||
exists(DelegateCreation dc, Expr e | e = this.asExpr() |
|
||||
dc.getArgument() = e and
|
||||
dc.getType().getName().matches("%Start")
|
||||
)
|
||||
}
|
||||
}
|
||||
deprecated import semmle.code.csharp.security.dataflow.flowsinks.ParallelSink
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
|
||||
import csharp
|
||||
import ParallelSink
|
||||
import semmle.code.csharp.security.dataflow.flowsinks.ParallelSink
|
||||
import ICryptoTransform
|
||||
|
||||
module NotThreadSafeCryptoUsageIntoParallelInvokeConfig implements DataFlow::ConfigSig {
|
||||
|
||||
Reference in New Issue
Block a user