fix warnings by ineffassign, with a one actual issue

In store/search.go, we would make a copy of a byte array, but then still use
the original instead of the copy. Could result in search operations not finding
messages that do have the content, but under very unlikely conditions only.

We'll keep running ineffassign with "make check", useful enough.
This commit is contained in:
Mechiel Lukkien 2025-03-24 10:19:50 +01:00
parent 04b1f030b7
commit 15a8ce8c0b
No known key found for this signature in database
8 changed files with 15 additions and 15 deletions

View File

@ -42,6 +42,9 @@ test-upgrade: build
install-staticcheck:
CGO_ENABLED=0 go install honnef.co/go/tools/cmd/staticcheck@latest
install-ineffassign:
CGO_ENABLED=0 go install github.com/gordonklaus/ineffassign@v0.1.0
check:
CGO_ENABLED=0 go vet -tags integration
CGO_ENABLED=0 go vet -tags website website/website.go
@ -55,6 +58,7 @@ check:
CGO_ENABLED=0 staticcheck -tags link rfc/link.go
CGO_ENABLED=0 staticcheck -tags errata rfc/errata.go
CGO_ENABLED=0 staticcheck -tags xr rfc/xr.go
CGO_ENABLED=0 ineffassign ./...
# needed for check-shadow
install-shadow:

View File

@ -512,7 +512,6 @@ func backupctl(ctx context.Context, ctl *ctl) {
backupDB(db, jfpath)
bloompath := filepath.Join("accounts", acc.Name, "junkfilter.bloom")
backupFile(bloompath)
db = nil
err := jf.Close()
ctl.log.Check(err, "closing junkfilter")
}

View File

@ -13,11 +13,12 @@ code paths are reachable/testable with mox localserve, but some use cases will
require a full setup.
Before committing, run at least "make fmt" and "make check" (which requires
staticcheck, run "make install-staticcheck" once). Also run "make check-shadow"
and fix any shadowed variables other than "err" (which are filtered out, but
causes the command to always exit with an error code; run "make install-shadow"
once to install the shadow command). If you've updated RFC references, run
"make" in rfc/, it verifies the referenced files exist.
staticcheck and ineffassign, run "make install-staticcheck install-ineffassign"
once). Also run "make check-shadow" and fix any shadowed variables other than
"err" (which are filtered out, but causes the command to always exit with an
error code; run "make install-shadow" once to install the shadow command). If
you've updated RFC references, run "make" in rfc/, it verifies the referenced
files exist.
When making changes to the public API of a package listed in
apidiff/packages.txt, run "make genapidiff" to update the list of changes in

View File

@ -1960,11 +1960,12 @@ sharing most of its code.
resolver := dns.StrictResolver{}
var haveMX bool
var origNextHopAuthentic, expandedNextHopAuthentic bool
var expandedNextHopAuthentic bool
var expandedNextHop dns.Domain
var hosts []dns.IPDomain
if len(args) == 1 {
var permanent bool
var origNextHopAuthentic bool
var err error
haveMX, origNextHopAuthentic, expandedNextHopAuthentic, expandedNextHop, hosts, permanent, err = smtpclient.GatherDestinations(ctxbg, c.log.Logger, resolver, dns.IPDomain{Domain: origNextHop})
status := "temporary"
@ -1998,7 +1999,6 @@ sharing most of its code.
d := xparseDomain(args[1], "destination host")
log.Printf("skipping domain mx/cname lookups, assuming domain is dnssec-protected")
origNextHopAuthentic = true
expandedNextHopAuthentic = true
expandedNextHop = d
hosts = []dns.IPDomain{{Domain: d}}

View File

@ -656,7 +656,6 @@ func TestHookListFilterSort(t *testing.T) {
var lr []HookRetired
lastID = 0
last = ""
l = nil
for {
nl, err := HookRetiredList(ctxbg, HookRetiredFilter{Max: 1}, HookRetiredSort{LastID: lastID, Last: last})
tcheck(t, err, "list paginated")

View File

@ -1435,7 +1435,6 @@ func TestListFilterSort(t *testing.T) {
var lr []MsgRetired
lastID = 0
last = ""
l = nil
for {
nl, err := RetiredList(ctxbg, RetiredFilter{Max: 1}, RetiredSort{LastID: lastID, Last: last})
tcheck(t, err, "list paginated")

View File

@ -3424,18 +3424,16 @@ func (c *conn) deliver(ctx context.Context, recvHdrFor func(string) string, msgW
return fmt.Errorf("finding rejects mailbox: %v", err)
}
hasSpace := true
if !conf.KeepRejects && mbrej != nil {
var chl []store.Change
chl, hasSpace, err = a.d.acc.TidyRejectsMailbox(c.log, tx, mbrej)
chl, hasSpace, err := a.d.acc.TidyRejectsMailbox(c.log, tx, mbrej)
if err != nil {
return fmt.Errorf("tidying rejects mailbox: %v", err)
}
changes = append(changes, chl...)
if !hasSpace {
log.Info("not storing spammy mail to full rejects mailbox")
return nil
}
changes = append(changes, chl...)
}
if mbrej == nil {
nmb, chl, _, _, err := a.d.acc.MailboxCreate(tx, conf.RejectsMailbox, store.SpecialUse{})

View File

@ -187,7 +187,7 @@ func toLower(buf []byte) []byte {
copied = true
nr := make([]byte, len(r), len(r)+nsize+len(buf)-i)
copy(nr, r)
nr = r
r = nr
}
r = utf8.AppendRune(r, nc)
}