diff options
author | Matt Johnston <matt@ucc.asn.au> | 2016-07-11 23:09:33 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2016-07-11 23:09:33 +0800 |
commit | 8fd720c3e319da773b48c0b191f049dbd1e3c7f0 (patch) | |
tree | fb575456077d85b5ace47795cda6edcfa51ef3ca /svr-session.c | |
parent | 4f5d0756c240db5b71547e9e0737679a1016d46f (diff) |
Improve exit message formatting
Diffstat (limited to 'svr-session.c')
-rw-r--r-- | svr-session.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/svr-session.c b/svr-session.c index d14bca9..4f56cd9 100644 --- a/svr-session.c +++ b/svr-session.c @@ -144,31 +144,33 @@ void svr_session(int sock, int childpipe) { /* failure exit - format must be <= 100 chars */ void svr_dropbear_exit(int exitcode, const char* format, va_list param) { - - char fmtbuf[300]; + char exitmsg[150]; + char fullmsg[300]; int i; + /* Render the formatted exit message */ + vsnprintf(exitmsg, sizeof(exitmsg), format, param); + + /* Add the prefix depending on session/auth state */ if (!sessinitdone) { /* before session init */ - snprintf(fmtbuf, sizeof(fmtbuf), - "Early exit: %s", format); + snprintf(fullmsg, sizeof(fullmsg), "Early exit: %s", exitmsg); } else if (ses.authstate.authdone) { /* user has authenticated */ - snprintf(fmtbuf, sizeof(fmtbuf), + snprintf(fullmsg, sizeof(fullmsg), "Exit (%s): %s", - ses.authstate.pw_name, format); + ses.authstate.pw_name, exitmsg); } else if (ses.authstate.pw_name) { /* we have a potential user */ - snprintf(fmtbuf, sizeof(fmtbuf), + snprintf(fullmsg, sizeof(fullmsg), "Exit before auth (user '%s', %u fails): %s", - ses.authstate.pw_name, ses.authstate.failcount, format); + ses.authstate.pw_name, ses.authstate.failcount, exitmsg); } else { /* before userauth */ - snprintf(fmtbuf, sizeof(fmtbuf), - "Exit before auth: %s", format); + snprintf(fullmsg, sizeof(fullmsg), "Exit before auth: %s", exitmsg); } - _dropbear_log(LOG_INFO, fmtbuf, param); + dropbear_log(LOG_INFO, "%s", fullmsg); #ifdef USE_VFORK /* For uclinux only the main server process should cleanup - we don't want |