summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go
diff options
context:
space:
mode:
authorLibravatar kim <grufwub@gmail.com>2025-10-13 16:49:53 +0200
committerLibravatar tobi <tobi.smethurst@protonmail.com>2025-10-17 15:32:55 +0200
commitea7eeada77a52fd58a9e1a949a39eccc7bce955a (patch)
treeede9f651d0bd7782b565883f9384341530f8320f /vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go
parent[bugfix] repeated posts on timeline endpoints (#4494) (diff)
downloadgotosocial-ea7eeada77a52fd58a9e1a949a39eccc7bce955a.tar.xz
[chore] update dependencies (#4495)
- github.com/coreos/go-oidc/v3: v3.15.0 -> v3.16.0 - github.com/go-playground/form/v4: v4.2.1 -> v4.3.0 - github.com/go-swagger/go-swagger: v0.32.3 -> v0.33.1 - golang.org/x/crypto: v0.42.0 -> v0.43.0 - golang.org/x/image: v0.31.0 -> v0.32.0 - golang.org/x/net: v0.45.0 -> v0.46.0 - golang.org/x/oauth2: v0.31.0 -> v0.32.0 - golang.org/x/sys: v0.36.0 -> v0.37.0 - golang.org/x/text: v0.29.0 -> v0.30.0 - modernc.org/sqlite: v1.39.0 -> v1.39.1 (w/ concurrency workaround) Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4495 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go40
1 files changed, 31 insertions, 9 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go b/vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go
index ca3bbca1f..04e6d934d 100644
--- a/vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go
+++ b/vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go
@@ -17,13 +17,15 @@
package vars
import (
- `encoding/json`
- `fmt`
- `reflect`
- `strconv`
- `unsafe`
+ "encoding/json"
+ "fmt"
+ "os"
+ "reflect"
+ "strconv"
+ "strings"
+ "unsafe"
- `github.com/bytedance/sonic/internal/rt`
+ "github.com/bytedance/sonic/internal/rt"
)
var ERR_too_deep = &json.UnsupportedValueError {
@@ -59,11 +61,31 @@ const (
PanicNilPointerOfNonEmptyString int = 1 + iota
)
-func GoPanic(code int, val unsafe.Pointer) {
+func GoPanic(code int, val unsafe.Pointer, buf string) {
+ sb := strings.Builder{}
switch(code){
case PanicNilPointerOfNonEmptyString:
- panic(fmt.Sprintf("val: %#v has nil pointer while its length is not zero!\nThis is a nil pointer exception (NPE) problem. There might be a data race issue. It is recommended to execute the tests related to the code with the `-race` compile flag to detect the problem.", (*rt.GoString)(val)))
+ sb.WriteString(fmt.Sprintf("val: %#v has nil pointer while its length is not zero!\nThis is a nil pointer exception (NPE) problem. There might be a data race issue. It is recommended to execute the tests related to the code with the `-race` compile flag to detect the problem.\n", (*rt.GoString)(val)))
default:
- panic("encoder error!")
+ sb.WriteString("encoder error: ")
+ sb.WriteString(strconv.Itoa(code))
+ sb.WriteString("\n")
+ }
+ sb.WriteString("JSON: ")
+ if len(buf) > maxJSONLength {
+ sb.WriteString(buf[len(buf)-maxJSONLength:])
+ } else {
+ sb.WriteString(buf)
+ }
+ panic(sb.String())
+}
+
+var maxJSONLength = 1024
+
+func init() {
+ if v := os.Getenv("SONIC_PANIC_MAX_JSON_LENGTH"); v != "" {
+ if i, err := strconv.Atoi(v); err == nil {
+ maxJSONLength = i
+ }
}
}