diff --git a/web/service/client.go b/web/service/client.go index 70e9b516..d8dbb90b 100644 --- a/web/service/client.go +++ b/web/service/client.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "fmt" + "math" "strings" "sync" "time" @@ -47,6 +48,9 @@ func (c ClientWithAttachments) MarshalJSON() ([]byte, error) { if len(rec) < 2 || rec[len(rec)-1] != '}' || len(extra) <= 2 { return rec, nil } + if len(extra) > math.MaxInt-len(rec) { + return rec, nil + } out := make([]byte, 0, len(rec)+len(extra)) out = append(out, rec[:len(rec)-1]...) if len(rec) > 2 {