Skip to content

Commit 8e4939e

Browse files
committed
Add tests for Conn
1 parent a4afff2 commit 8e4939e

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test_jmoiron_sqlx.go

+30
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,36 @@ func test_sqlx_ctx(ctx context.Context, q sqlx.ExtContext) {
4444
sink(user2) // $ hasTaintFlow="user2"
4545
}
4646

47+
func test_sqlx_Conn(conn *sqlx.Conn) {
48+
var user User
49+
conn.GetContext(nil, &user, "SELECT * FROM users WHERE id = 1") // $ source
50+
51+
var user2 User
52+
conn.SelectContext(nil, &user2, "SELECT * FROM users WHERE id = 1") // $ source
53+
54+
row := conn.QueryRowxContext(nil, "SELECT * FROM users WHERE id = 1") // $ source
55+
56+
userMap := make(map[string]interface{})
57+
row.MapScan(userMap)
58+
id := userMap["id"].(int)
59+
sink(id) // $ hasTaintFlow="id"
60+
61+
rows, err := conn.QueryxContext(nil, "SELECT * FROM users WHERE id = 1") // $ source
62+
ignore(err)
63+
64+
for rows.Next() {
65+
var id int
66+
var name string
67+
err = rows.Scan(&id, &name)
68+
69+
if err != nil {
70+
return
71+
}
72+
73+
sink(id, name) // $ hasTaintFlow="id" hasTaintFlow="name"
74+
}
75+
}
76+
4777
func test_sqlx_DB(db *sqlx.DB) {
4878
example, err := db.Query("SELECT * FROM users") // $ source
4979
ignore(example, err)

0 commit comments

Comments
 (0)