diff options
Diffstat (limited to 'libgo/go/exp/ssh/common.go')
-rw-r--r-- | libgo/go/exp/ssh/common.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libgo/go/exp/ssh/common.go b/libgo/go/exp/ssh/common.go index 01c55219d47..6844fb89b79 100644 --- a/libgo/go/exp/ssh/common.go +++ b/libgo/go/exp/ssh/common.go @@ -224,3 +224,16 @@ func buildDataSignedForAuth(sessionId []byte, req userAuthRequestMsg, algo, pubK r = marshalString(r, pubKey) return ret } + +// safeString sanitises s according to RFC 4251, section 9.2. +// All control characters except tab, carriage return and newline are +// replaced by 0x20. +func safeString(s string) string { + out := []byte(s) + for i, c := range out { + if c < 0x20 && c != 0xd && c != 0xa && c != 0x9 { + out[i] = 0x20 + } + } + return string(out) +} |