# HG changeset patch # User Matt Johnston # Date 1458140007 -28800 # Node ID 0c47d97aa9d565b76e448f003e7fa7e766129592 # Parent a20b6af6f182f4de702d99afdafdcff9bdb554ad# Parent 07ee7736397e603c5a316c7985dd877521c42dd7 merge diff -r 07ee7736397e -r 0c47d97aa9d5 CHANGES --- a/CHANGES Thu Dec 31 17:34:17 2015 +0100 +++ b/CHANGES Wed Mar 16 22:53:27 2016 +0800 @@ -1,3 +1,22 @@ +- Fix crash when fallback initshells() is used, reported by Michael Nowak and Mike Tzou + +- Support syslog in dbclient, option -o usesyslog=yes. Patch from Konstantin Tokarev + +- Kill a proxycommand when dbclient exits, patch from Konstantin Tokarev + +- Option to exit when a TCP forward fails, patch from Konstantin Tokarev + +- New "-o" option parsing from Konstantin Tokarev. This allows handling some extra options + in the style of OpenSSH, though implementing all OpenSSH options is not planned. + +- Various cleanups for issues found by a lint tool, patch from Francois Perrad + +- Allow specifying commands eg "dropbearmulti dbclient ..." instead of symlinks + +- Fix tab indent consistency, patch from Francois Perrad + +- Fix issues found by cppcheck, reported by Mike Tzou + 2016.72 - 9 March 2016 - Validate X11 forwarding input. Could allow bypass of authorized_keys command= restrictions, diff -r 07ee7736397e -r 0c47d97aa9d5 cli-kex.c --- a/cli-kex.c Thu Dec 31 17:34:17 2015 +0100 +++ b/cli-kex.c Wed Mar 16 22:53:27 2016 +0800 @@ -186,7 +186,7 @@ char* fp = NULL; FILE *tty = NULL; - char response = 'z'; + int response = 'z'; fp = sign_key_fingerprint(keyblob, keybloblen); if (cli_opts.always_accept_key) { diff -r 07ee7736397e -r 0c47d97aa9d5 cli-session.c --- a/cli-session.c Thu Dec 31 17:34:17 2015 +0100 +++ b/cli-session.c Wed Mar 16 22:53:27 2016 +0800 @@ -361,9 +361,10 @@ /* Set std{in,out,err} back to non-blocking - busybox ash dies nastily if * we don't revert the flags */ - fcntl(cli_ses.stdincopy, F_SETFL, cli_ses.stdinflags); - fcntl(cli_ses.stdoutcopy, F_SETFL, cli_ses.stdoutflags); - fcntl(cli_ses.stderrcopy, F_SETFL, cli_ses.stderrflags); + /* Ignore return value since there's nothing we can do */ + (void)fcntl(cli_ses.stdincopy, F_SETFL, cli_ses.stdinflags); + (void)fcntl(cli_ses.stdoutcopy, F_SETFL, cli_ses.stdoutflags); + (void)fcntl(cli_ses.stderrcopy, F_SETFL, cli_ses.stderrflags); cli_tty_cleanup(); diff -r 07ee7736397e -r 0c47d97aa9d5 loginrec.c --- a/loginrec.c Thu Dec 31 17:34:17 2015 +0100 +++ b/loginrec.c Wed Mar 16 22:53:27 2016 +0800 @@ -305,21 +305,6 @@ li->tv_usec = tv.tv_usec; } -/* copy a sockaddr_* into our logininfo */ -void -login_set_addr(struct logininfo *li, const struct sockaddr *sa, - const unsigned int sa_size) -{ - unsigned int bufsize = sa_size; - - /* make sure we don't overrun our union */ - if (sizeof(li->hostaddr) < sa_size) - bufsize = sizeof(li->hostaddr); - - memcpy((void *)&(li->hostaddr.sa), (const void *)sa, bufsize); -} - - /** ** login_write: Call low-level recording functions based on autoconf ** results diff -r 07ee7736397e -r 0c47d97aa9d5 loginrec.h --- a/loginrec.h Thu Dec 31 17:34:17 2015 +0100 +++ b/loginrec.h Wed Mar 16 22:53:27 2016 +0800 @@ -173,10 +173,6 @@ int login_write (struct logininfo *li); int login_log_entry(struct logininfo *li); -/* set the network address based on network address type */ -void login_set_addr(struct logininfo *li, const struct sockaddr *sa, - const unsigned int sa_size); - /* produce various forms of the line filename */ char *line_fullname(char *dst, const char *src, size_t dstsize); char *line_stripname(char *dst, const char *src, size_t dstsize); diff -r 07ee7736397e -r 0c47d97aa9d5 signkey.c --- a/signkey.c Thu Dec 31 17:34:17 2015 +0100 +++ b/signkey.c Wed Mar 16 22:53:27 2016 +0800 @@ -93,7 +93,7 @@ } #endif - return i; + return (enum signkey_type)i; } } diff -r 07ee7736397e -r 0c47d97aa9d5 svr-kex.c --- a/svr-kex.c Thu Dec 31 17:34:17 2015 +0100 +++ b/svr-kex.c Wed Mar 16 22:53:27 2016 +0800 @@ -138,7 +138,7 @@ break; #endif default: - (void)0; + dropbear_assert(0); } if (readhostkey(fn, svr_opts.hostkey, &type) == DROPBEAR_SUCCESS) { diff -r 07ee7736397e -r 0c47d97aa9d5 svr-x11fwd.c --- a/svr-x11fwd.c Thu Dec 31 17:34:17 2015 +0100 +++ b/svr-x11fwd.c Wed Mar 16 22:53:27 2016 +0800 @@ -119,7 +119,7 @@ /* cleanup */ m_free(chansess->x11authprot); m_free(chansess->x11authcookie); - close(fd); + m_close(fd); return DROPBEAR_FAILURE; }