1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2025-12-16 14:27:01 +00:00

Fix non-constant format string in calls to Printf-like functions

In a few places, we call Printf-like functions, but for the format we
use either non-format messages (which is not tidy, but okay), or
variable messages (which can be problematic if they contain %-format
directives).

The patch fixes the calls by either moving to Print-like functions, or
using `Printf("%s", message)` instead.

These were found by a combination of `go vet` (which complains about
"non-constant format string in call"), and manual inspection.
This commit is contained in:
Alberto Bertogli
2025-10-24 12:34:58 +01:00
parent 3776186288
commit 5c2566c9b1
5 changed files with 14 additions and 14 deletions

View File

@@ -97,8 +97,8 @@ func (l *Logger) Auth(netAddr net.Addr, user string, successful bool) {
res = "failed"
}
msg := fmt.Sprintf("%s auth %s for %s\n", netAddr, res, user)
l.printf(msg)
authLog.Debugf(msg)
l.printf("%s", msg)
authLog.Debugf("%s", msg)
}
// Rejected logs that we've rejected an email.

View File

@@ -233,7 +233,7 @@ func (tr *trace) Printf(format string, a ...interface{}) {
func (tr *trace) Errorf(format string, a ...interface{}) error {
tr.SetError()
err := fmt.Errorf(format, a...)
tr.Printf(err.Error())
tr.Printf("%s", err.Error())
return err
}

View File

@@ -378,18 +378,18 @@ func (c *Conn) EHLO(params string) (code int, msg string) {
c.isESMTP = true
buf := bytes.NewBuffer(nil)
fmt.Fprintf(buf, c.hostname+" - Your hour of destiny has come.\n")
fmt.Fprintf(buf, "8BITMIME\n")
fmt.Fprintf(buf, "PIPELINING\n")
fmt.Fprintf(buf, "SMTPUTF8\n")
fmt.Fprintf(buf, "ENHANCEDSTATUSCODES\n")
fmt.Fprint(buf, c.hostname+" - Your hour of destiny has come.\n")
fmt.Fprint(buf, "8BITMIME\n")
fmt.Fprint(buf, "PIPELINING\n")
fmt.Fprint(buf, "SMTPUTF8\n")
fmt.Fprint(buf, "ENHANCEDSTATUSCODES\n")
fmt.Fprintf(buf, "SIZE %d\n", c.maxDataSize)
if c.onTLS {
fmt.Fprintf(buf, "AUTH PLAIN\n")
fmt.Fprint(buf, "AUTH PLAIN\n")
} else {
fmt.Fprintf(buf, "STARTTLS\n")
fmt.Fprint(buf, "STARTTLS\n")
}
fmt.Fprintf(buf, "HELP\n")
fmt.Fprint(buf, "HELP\n")
return 250, buf.String()
}

View File

@@ -57,7 +57,7 @@ func fuzzConnection(t *testing.T, modeI int, data []byte) {
continue
}
if err = tconn.PrintfLine(line); err != nil {
if err = tconn.PrintfLine("%s", line); err != nil {
break
}
@@ -82,7 +82,7 @@ func FuzzConnection(f *testing.F) {
func exchangeData(scanner *bufio.Scanner, tconn *textproto.Conn) error {
for scanner.Scan() {
line := scanner.Text()
if err := tconn.PrintfLine(line); err != nil {
if err := tconn.PrintfLine("%s", line); err != nil {
return err
}
if line == "." {

View File

@@ -408,7 +408,7 @@ func TestTooMuchData(t *testing.T) {
func simpleCmd(t *testing.T, c *smtp.Client, cmd string, expected int) string {
t.Helper()
if err := c.Text.PrintfLine(cmd); err != nil {
if err := c.Text.PrintfLine("%s", cmd); err != nil {
t.Fatalf("Failed to write %s: %v", cmd, err)
}