mirror of
https://github.com/YuzuZensai/TrollSSH.git
synced 2026-09-13 16:48:59 +00:00
🐛 fix: truncate sanitized log values without full rune copy
This commit is contained in:
+7
-5
@@ -47,18 +47,20 @@ func sanitizeN(value any, maxLength int) string {
|
|||||||
str = fmt.Sprint(v)
|
str = fmt.Sprint(v)
|
||||||
}
|
}
|
||||||
var b strings.Builder
|
var b strings.Builder
|
||||||
|
count := 0
|
||||||
for _, r := range str {
|
for _, r := range str {
|
||||||
|
if count >= maxLength {
|
||||||
|
b.WriteRune('…')
|
||||||
|
return b.String()
|
||||||
|
}
|
||||||
if r < 0x20 || (r >= 0x7f && r <= 0x9f) {
|
if r < 0x20 || (r >= 0x7f && r <= 0x9f) {
|
||||||
b.WriteRune('�')
|
b.WriteRune('�')
|
||||||
} else {
|
} else {
|
||||||
b.WriteRune(r)
|
b.WriteRune(r)
|
||||||
}
|
}
|
||||||
|
count++
|
||||||
}
|
}
|
||||||
out := []rune(b.String())
|
return b.String()
|
||||||
if len(out) > maxLength {
|
|
||||||
return string(out[:maxLength]) + "…"
|
|
||||||
}
|
|
||||||
return string(out)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func emit(level logLevel, name string, stream *os.File, args []any) {
|
func emit(level logLevel, name string, stream *os.File, args []any) {
|
||||||
|
|||||||
Reference in New Issue
Block a user