Changeset 173 in code for trunk/db.go


Ignore:
Timestamp:
Mar 27, 2020, 9:38:38 PM (5 years ago)
Author:
contact
Message:

Stop accessing user data in downstreamConn.authenticate

This becomes racy once user.Password is updated on-the-fly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/db.go

    r149 r173  
    105105
    106106        return users, nil
     107}
     108
     109func (db *DB) GetUser(username string) (*User, error) {
     110        db.lock.RLock()
     111        defer db.lock.RUnlock()
     112
     113        user := &User{Username: username}
     114
     115        var password *string
     116        row := db.db.QueryRow("SELECT password FROM User WHERE username = ?", username)
     117        if err := row.Scan(&password); err != nil {
     118                return nil, err
     119        }
     120        user.Password = fromStringPtr(password)
     121        return user, nil
    107122}
    108123
Note: See TracChangeset for help on using the changeset viewer.