diff --git a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.expected b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.expected index fabba9c5dd7..0f15cb98cc6 100644 --- a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.expected +++ b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.expected @@ -1,4 +1,5 @@ invalidModelRow +| Unrecognized input specification "Argument[0..2]" in sink model. | #select | test.go:47:10:47:12 | arg | qltest | | test.go:48:2:48:13 | type assertion | qltest | diff --git a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.ql b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.ql index 855cf265f83..ac408e1e436 100644 --- a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.ql +++ b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.ql @@ -9,7 +9,8 @@ class SinkModelTest extends SinkModelCsv { [ //`namespace; type; subtypes; name; -; ext; input; kind` "github.com/nonexistent/test;B;false;Sink1;;;Argument[0];qltest", - "github.com/nonexistent/test;B;false;SinkMethod;;;Argument[-1];qltest" + "github.com/nonexistent/test;B;false;SinkMethod;;;Argument[-1];qltest", + "github.com/nonexistent/test;B;false;SinkManyArgs;;;Argument[0..2];qltest", ] } } diff --git a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/test.go b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/test.go index 93c680f6742..a70b2868f58 100644 --- a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/test.go +++ b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/test.go @@ -140,4 +140,10 @@ func simpleflow() { c4.Set(a.Src1().(string)) c4.Set("") b.Sink1(c4.Get()) // $ SPURIOUS: hasTaintFlow="call to Get" // because we currently don't clear content + + arg1 := src + arg2 := src + arg3 := src + arg4 := src + b.SinkManyArgs(arg1, arg2, arg3, arg4) // $ hasTaintFlow="arg1" hasTaintFlow="arg2" hasTaintFlow="arg3" } diff --git a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/vendor/github.com/nonexistent/test/stub.go b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/vendor/github.com/nonexistent/test/stub.go index 185dd206371..2f13fce84e7 100644 --- a/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/vendor/github.com/nonexistent/test/stub.go +++ b/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/vendor/github.com/nonexistent/test/stub.go @@ -58,6 +58,7 @@ func (a *A1) SrcArg(arg interface{}) {} type B interface { Sink1(arg interface{}) SinkMethod() interface{} + SinkManyArgs(arg1 interface{}, arg2 interface{}, arg3 interface{}, arg4 interface{}) } type C struct {