@@ -5,6 +5,7 @@ private import semmle.code.csharp.dataflow.DataFlow
55private import semmle.code.csharp.dataflow.ExternalFlow
66private import semmle.code.csharp.dataflow.FlowSummary
77private import semmle.code.csharp.dataflow.internal.DataFlowPrivate
8+ private import semmle.code.csharp.dataflow.internal.DataFlowDispatch as DataFlowDispatch
89private import semmle.code.csharp.dataflow.TaintTracking
910private import semmle.code.csharp.dataflow.internal.TaintTrackingPrivate
1011private import semmle.code.csharp.security.dataflow.flowsources.Remote
@@ -23,7 +24,7 @@ class TestLibrary extends RefType {
2324/**
2425 * An external API from either the C# Standard Library or a 3rd party library.
2526 */
26- class ExternalApi extends Callable {
27+ class ExternalApi extends DataFlowDispatch :: DataFlowCallable {
2728 ExternalApi ( ) { this .fromLibrary ( ) }
2829
2930 /**
@@ -32,13 +33,13 @@ class ExternalApi extends Callable {
3233 private string getSignature ( ) {
3334 result =
3435 this .getDeclaringType ( ) .getUnboundDeclaration ( ) + "." + this .getName ( ) + "(" +
35- this . parameterTypesToString ( ) + ")"
36+ parameterQualifiedTypeNamesToString ( this ) + ")"
3637 }
3738
3839 /**
3940 * Gets the namespace of this API.
4041 */
41- private string getNamespace ( ) { result = this .getDeclaringType ( ) .getNamespace ( ) . toString ( ) }
42+ private string getNamespace ( ) { this .getDeclaringType ( ) .hasQualifiedName ( result , _ ) }
4243
4344 /**
4445 * Gets the assembly file name containing this API.
@@ -74,7 +75,7 @@ class ExternalApi extends Callable {
7475
7576 /** Holds if this API has a supported summary. */
7677 predicate hasSummary ( ) {
77- this . getUnboundDeclaration ( ) = any ( SummarizedCallable sc ) or
78+ this instanceof SummarizedCallable or
7879 defaultAdditionalTaintStep ( this .getAnInput ( ) , _)
7980 }
8081
0 commit comments