From 07395b9c1d364fc6bb02fb6c28c4c8e1ba4b5fc5 Mon Sep 17 00:00:00 2001 From: Amy Gale Ruth Bowersox Date: Mon, 29 Dec 2025 22:20:51 -0700 Subject: [PATCH] some additional Scan error handling --- database/community.go | 24 +++++++++++++++--------- database/conference.go | 8 ++++++-- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/database/community.go b/database/community.go index 67db7b5..e979a18 100644 --- a/database/community.go +++ b/database/community.go @@ -247,8 +247,12 @@ func (c *Community) MemberCount(ctx context.Context, hidden bool) (int, error) { } if rs.Next() { var rc int - rs.Scan(&rc) - return rc, nil + err = rs.Scan(&rc) + if err == nil { + return rc, nil + } else { + return -1, err + } } return -1, errors.New("internal error reading member count") } @@ -321,13 +325,15 @@ func (c *Community) ListMembers(ctx context.Context, field int, oper int, term s return nil, -1, errors.New("internal error getting member count") } var total int - rs.Scan(&total) - if offset > 0 { - rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid - AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ? OFFSET ?", c.Id, max, offset) - } else { - rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid - AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ?", c.Id, max) + err = rs.Scan(&total) + if err == nil { + if offset > 0 { + rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid + AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ? OFFSET ?", c.Id, max, offset) + } else { + rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid + AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ?", c.Id, max) + } } if err != nil { return nil, total, err diff --git a/database/conference.go b/database/conference.go index d19c7f9..1ae31a5 100644 --- a/database/conference.go +++ b/database/conference.go @@ -18,6 +18,7 @@ import ( lru "github.com/hashicorp/golang-lru" "github.com/jmoiron/sqlx" + log "github.com/sirupsen/logrus" ) // Conference struct is the top-level structure for a conference. @@ -75,8 +76,11 @@ func (c *Conference) Aliases(ctx context.Context) ([]string, error) { rc := make([]string, 0, 5) for rs.Next() { var a string - rs.Scan(&a) - rc = append(rc, a) + if err = rs.Scan(&a); err == nil { + rc = append(rc, a) + } else { + log.Errorf("Aliases scan error: %v", err) + } } return rc, nil }