C#: Move parallelsink to the library qlpack.

This commit is contained in:
Michael Nebel
2024-04-16 12:38:38 +02:00
parent c720fb2c34
commit f69737b407
3 changed files with 30 additions and 24 deletions

View File

@@ -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")
)
}
}

View File

@@ -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

View File

@@ -15,7 +15,7 @@
*/
import csharp
import ParallelSink
import semmle.code.csharp.security.dataflow.flowsinks.ParallelSink
import ICryptoTransform
module NotThreadSafeCryptoUsageIntoParallelInvokeConfig implements DataFlow::ConfigSig {