From b485463197cd220aa654e7fc34a18d68af37e6e7 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 5 Oct 2012 11:39:47 +0200 Subject: CVE-2012-4560: Fix a write one past the end of 'buf'. --- src/misc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/misc.c b/src/misc.c index 62230354..199018fb 100644 --- a/src/misc.c +++ b/src/misc.c @@ -719,7 +719,8 @@ char *ssh_path_expand_escape(ssh_session session, const char *s) { if (*p != '%') { buf[i] = *p; i++; - if (i > MAX_BUF_SIZE) { + if (i >= MAX_BUF_SIZE) { + free(r); return NULL; } buf[i] = '\0'; @@ -771,7 +772,7 @@ char *ssh_path_expand_escape(ssh_session session, const char *s) { } i += strlen(x); - if (i > MAX_BUF_SIZE) { + if (i >= MAX_BUF_SIZE) { ssh_set_error(session, SSH_FATAL, "String too long"); free(x); -- cgit v1.2.3