0xPolygonHermez / zkevm-node

Go implementation of a node that operates the Polygon zkEVM Network
Other
531 stars 685 forks source link

Potential database connection leak #3516

Open 0xyjk opened 5 months ago

0xyjk commented 5 months ago

database rows does not closed

correct usage:

func queryRows() ([]A, error) {
    rows, err := db.Query("SELECT ....)
    if err != nil {
        return nil, err
    }
    defer rows.Close()

    var as []A

    for rows.Next() {
        var a A
        if err := rows.Scan(....); err != nil {
            return nil, err
        }
        as= append(as, a)
    }
    if err = rows.Err(); err != nil {
        return nil, err
    }
    return as, nil
}

should check rows.Err() for all query