diff options
| author | 2025-10-13 16:49:53 +0200 | |
|---|---|---|
| committer | 2025-10-17 15:32:55 +0200 | |
| commit | ea7eeada77a52fd58a9e1a949a39eccc7bce955a (patch) | |
| tree | ede9f651d0bd7782b565883f9384341530f8320f /vendor/github.com/bytedance/sonic/internal/encoder/vars/errors.go | |
| parent | [bugfix] repeated posts on timeline endpoints (#4494) (diff) | |
| download | gotosocial-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.go | 40 |
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 + } } } |
