dgryski.semgrep-go.close-sql-query-rows.rows-not-closed

Author
581
Download Count*
License
QueryxContext rows must be closed (or use ExecContext)
Run Locally
Run in CI
Defintion
rules:
- id: rows-not-closed
patterns:
- pattern: $Q.QueryxContext(...)
- pattern-not-inside: return $X.QueryxContext(...)
- pattern-not-inside: |
$ROWS, $ERR = $Q.QueryxContext(...)
...
$ROWS.Close()
- pattern-not-inside: |
$ROWS, $ERR = $Q.QueryxContext(...)
...
defer $ROWS.Close()
- pattern-not-inside: |
$ROWS, $ERR = $Q.QueryxContext(...)
...
$FUNC($ROWS)
- pattern-not-inside: |
if ... {
...
$ROWS, $ERR = $Q.QueryxContext(...)
...
} else { ... }
$ROWS.Close()
- pattern-not-inside: |
if ... {
...
$ROWS, $ERR = $Q.QueryxContext(...)
...
} else { ... }
...
defer $ROWS.Close()
- pattern-not-inside: |
if ... { ... } else {
...
$ROWS, $ERR = $Q.QueryxContext(...)
...
}
...
$ROWS.Close()
- pattern-not-inside: |
if ... { ... } else {
...
$ROWS, $ERR = $Q.QueryxContext(...)
...
}
...
defer $ROWS.Close()
message: QueryxContext rows must be closed (or use ExecContext)
languages:
- go
severity: ERROR
metadata:
license: MIT
Short Link: https://sg.run/4xdg