blob: 717fa358dd83887ba9a8e028039c26c0ad96635f [file] [log] [blame]
Tim Windelschmidt1f4590b2025-07-29 23:05:36 +02001// Copyright 2020 The Cockroach Authors.
2// SPDX-License-Identifier: Apache-2.0
3
4package fmtsafe
5
6import (
7 "source.monogon.dev/third_party/com_github_cockroachdb_cockroach/errwrap"
8)
9
10// requireConstMsg records functions for which the last string
11// argument must be a constant string.
12var requireConstMsg = map[string]bool{}
13
14// requireConstFmt records functions for which the string arg
15// before the final ellipsis must be a constant string.
16var requireConstFmt = map[string]bool{
17 // Logging things.
18 "log.Printf": true,
19 "log.Fatalf": true,
20 "log.Panicf": true,
21 "(*log.Logger).Fatalf": true,
22 "(*log.Logger).Panicf": true,
23 "(*log.Logger).Printf": true,
24
25 "(go.etcd.io/etcd/raft/v3.Logger).Debugf": true,
26 "(go.etcd.io/etcd/raft/v3.Logger).Infof": true,
27 "(go.etcd.io/etcd/raft/v3.Logger).Warningf": true,
28 "(go.etcd.io/etcd/raft/v3.Logger).Errorf": true,
29 "(go.etcd.io/etcd/raft/v3.Logger).Fatalf": true,
30 "(go.etcd.io/etcd/raft/v3.Logger).Panicf": true,
31
32 "(google.golang.org/grpc/grpclog.Logger).Infof": true,
33 "(google.golang.org/grpc/grpclog.Logger).Warningf": true,
34 "(google.golang.org/grpc/grpclog.Logger).Errorf": true,
35}
36
37func init() {
38 for errorFn, formatStringIndex := range errwrap.ErrorFnFormatStringIndex {
39 if formatStringIndex < 0 {
40 requireConstMsg[errorFn] = true
41 } else {
42 requireConstFmt[errorFn] = true
43 }
44 }
45}