forked from pool/openssh
18 lines
600 B
Diff
18 lines
600 B
Diff
--- sshconnect2.c
|
|
+++ sshconnect2.c
|
|
@@ -387,11 +387,11 @@
|
|
debug3("input_userauth_banner");
|
|
raw = packet_get_string(&len);
|
|
lang = packet_get_string(NULL);
|
|
- if (options.log_level >= SYSLOG_LEVEL_INFO) {
|
|
+ if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO) {
|
|
if (len > 65536)
|
|
len = 65536;
|
|
- msg = xmalloc(len * 4); /* max expansion from strnvis() */
|
|
- strnvis(msg, raw, len * 4, VIS_SAFE|VIS_OCTAL);
|
|
+ msg = xmalloc(len * 4 + 1); /* max expansion from strnvis() */
|
|
+ strnvis(msg, raw, len * 4 + 1, VIS_SAFE|VIS_OCTAL|VIS_NOSLASH);
|
|
fprintf(stderr, "%s", msg);
|
|
xfree(msg);
|
|
}
|