# HG changeset patch # User Matt Johnston # Date 1426600712 -28800 # Node ID 696205e3dc991446ce95ec6b18c6fcb3e17db46f # Parent 16379795f80b3aa36b8fe36ae6d29c90a05a1303 Remove ATTRIB_NORETURN from session_loop() since it returns. The stack breaks pretty badly. diff -r 16379795f80b -r 696205e3dc99 common-channel.c --- a/common-channel.c Mon Mar 16 22:10:30 2015 +0800 +++ b/common-channel.c Tue Mar 17 21:58:32 2015 +0800 @@ -482,7 +482,7 @@ if (written < 0) { if (errno != EINTR && errno != EAGAIN) { - TRACE(("errno %d len %d", errno, len)) + TRACE(("errno %d", errno)) close_chan_fd(channel, fd, SHUT_WR); } } else { diff -r 16379795f80b -r 696205e3dc99 session.h --- a/session.h Mon Mar 16 22:10:30 2015 +0800 +++ b/session.h Tue Mar 17 21:58:32 2015 +0800 @@ -44,7 +44,7 @@ extern int exitflag; void common_session_init(int sock_in, int sock_out); -void session_loop() ATTRIB_NORETURN; +void session_loop(); void session_cleanup(); void send_session_identification(); void send_msg_ignore(); diff -r 16379795f80b -r 696205e3dc99 svr-authpam.c --- a/svr-authpam.c Mon Mar 16 22:10:30 2015 +0800 +++ b/svr-authpam.c Tue Mar 17 21:58:32 2015 +0800 @@ -162,15 +162,15 @@ } /* PAM conversation function - for now we only handle one message */ -int -pamConvFunc(int num_msg, +static int +dropbear_pam_conv_func(int num_msg, const struct pam_message **msgs, struct pam_response **respp, void *UNUSED(appdata_ptr)) { int ret = PAM_SYSTEM_ERR; - TRACE(("enter pamConvFunc")) + TRACE(("enter dropbear_pam_conv_func")) if (ses.recursion_count != 1) { dropbear_exit("PAM failure"); @@ -205,7 +205,7 @@ void svr_auth_pam() { int rc; struct pam_conv pamConv = { - pamConvFunc, + dropbear_pam_conv_func, NULL };