=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/monitor_wrap.c,v retrieving revision 1.31.2.2 retrieving revision 1.32 diff -u -r1.31.2.2 -r1.32 --- src/usr.bin/ssh/monitor_wrap.c 2004/08/19 22:37:31 1.31.2.2 +++ src/usr.bin/ssh/monitor_wrap.c 2003/09/23 20:17:11 1.32 @@ -25,7 +25,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: monitor_wrap.c,v 1.31.2.2 2004/08/19 22:37:31 brad Exp $"); +RCSID("$OpenBSD: monitor_wrap.c,v 1.32 2003/09/23 20:17:11 markus Exp $"); #include #include @@ -63,7 +63,6 @@ extern z_stream outgoing_stream; extern struct monitor *pmonitor; extern Buffer input, output; -extern Buffer loginmsg; int mm_is_monitor(void) @@ -72,11 +71,11 @@ * m_pid is only set in the privileged part, and * points to the unprivileged child. */ - return (pmonitor && pmonitor->m_pid > 0); + return (pmonitor->m_pid > 0); } void -mm_request_send(int sock, enum monitor_reqtype type, Buffer *m) +mm_request_send(int socket, enum monitor_reqtype type, Buffer *m) { u_int mlen = buffer_len(m); u_char buf[5]; @@ -85,14 +84,14 @@ PUT_32BIT(buf, mlen + 1); buf[4] = (u_char) type; /* 1st byte of payload is mesg-type */ - if (atomicio(vwrite, sock, buf, sizeof(buf)) != sizeof(buf)) + if (atomicio(vwrite, socket, buf, sizeof(buf)) != sizeof(buf)) fatal("%s: write", __func__); - if (atomicio(vwrite, sock, buffer_ptr(m), mlen) != mlen) + if (atomicio(vwrite, socket, buffer_ptr(m), mlen) != mlen) fatal("%s: write", __func__); } void -mm_request_receive(int sock, Buffer *m) +mm_request_receive(int socket, Buffer *m) { u_char buf[4]; u_int msg_len; @@ -100,7 +99,7 @@ debug3("%s entering", __func__); - res = atomicio(read, sock, buf, sizeof(buf)); + res = atomicio(read, socket, buf, sizeof(buf)); if (res != sizeof(buf)) { if (res == 0) cleanup_exit(255); @@ -111,19 +110,19 @@ fatal("%s: read: bad msg_len %d", __func__, msg_len); buffer_clear(m); buffer_append_space(m, msg_len); - res = atomicio(read, sock, buffer_ptr(m), msg_len); + res = atomicio(read, socket, buffer_ptr(m), msg_len); if (res != msg_len) fatal("%s: read: %ld != msg_len", __func__, (long)res); } void -mm_request_receive_expect(int sock, enum monitor_reqtype type, Buffer *m) +mm_request_receive_expect(int socket, enum monitor_reqtype type, Buffer *m) { u_char rtype; debug3("%s entering: type %d", __func__, type); - mm_request_receive(sock, m); + mm_request_receive(socket, m); rtype = buffer_get_char(m); if (rtype != type) fatal("%s: read: rtype %d != type %d", __func__, @@ -187,7 +186,7 @@ } struct passwd * -mm_getpwnamallow(const char *username) +mm_getpwnamallow(const char *login) { Buffer m; struct passwd *pw; @@ -196,7 +195,7 @@ debug3("%s entering", __func__); buffer_init(&m); - buffer_put_cstring(&m, username); + buffer_put_cstring(&m, login); mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PWNAM, &m); @@ -221,8 +220,7 @@ return (pw); } -char * -mm_auth2_read_banner(void) +char *mm_auth2_read_banner(void) { Buffer m; char *banner; @@ -233,16 +231,10 @@ mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTH2_READ_BANNER, &m); buffer_clear(&m); - mm_request_receive_expect(pmonitor->m_recvfd, - MONITOR_ANS_AUTH2_READ_BANNER, &m); + mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUTH2_READ_BANNER, &m); banner = buffer_get_string(&m, NULL); buffer_free(&m); - /* treat empty banner as missing banner */ - if (strlen(banner) == 0) { - xfree(banner); - banner = NULL; - } return (banner); } @@ -535,7 +527,7 @@ } void -mm_send_keystate(struct monitor *monitor) +mm_send_keystate(struct monitor *pmonitor) { Buffer m; u_char *blob, *p; @@ -571,7 +563,7 @@ goto skip; } else { /* Kex for rekeying */ - mm_send_kex(&m, *monitor->m_pkex); + mm_send_kex(&m, *pmonitor->m_pkex); } debug3("%s: Sending new keys: %p %p", @@ -623,7 +615,7 @@ buffer_put_string(&m, buffer_ptr(&input), buffer_len(&input)); buffer_put_string(&m, buffer_ptr(&output), buffer_len(&output)); - mm_request_send(monitor->m_recvfd, MONITOR_REQ_KEYEXPORT, &m); + mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYEXPORT, &m); debug3("%s: Finished sending state", __func__); buffer_free(&m); @@ -633,7 +625,7 @@ mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, int namebuflen) { Buffer m; - char *p, *msg; + char *p; int success = 0; buffer_init(&m); @@ -649,15 +641,11 @@ return (0); } p = buffer_get_string(&m, NULL); - msg = buffer_get_string(&m, NULL); buffer_free(&m); strlcpy(namebuf, p, namebuflen); /* Possible truncation */ xfree(p); - buffer_append(&loginmsg, msg, strlen(msg)); - xfree(msg); - *ptyfd = mm_receive_fd(pmonitor->m_recvfd); *ttyfd = mm_receive_fd(pmonitor->m_recvfd); @@ -786,7 +774,6 @@ return ((authok == 0) ? -1 : 0); } -#ifdef SKEY int mm_skey_query(void *ctx, char **name, char **infotxt, u_int *numprompts, char ***prompts, u_int **echo_on) @@ -850,7 +837,6 @@ return ((authok == 0) ? -1 : 0); } -#endif /* SKEY */ void mm_ssh1_session_id(u_char session_id[16]) @@ -967,7 +953,7 @@ #ifdef GSSAPI OM_uint32 -mm_ssh_gssapi_server_ctx(Gssctxt **ctx, gss_OID goid) +mm_ssh_gssapi_server_ctx(Gssctxt **ctx, gss_OID oid) { Buffer m; OM_uint32 major; @@ -976,7 +962,7 @@ *ctx = NULL; buffer_init(&m); - buffer_put_string(&m, goid->elements, goid->length); + buffer_put_string(&m, oid->elements, oid->length); mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSSETUP, &m); mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSSETUP, &m); @@ -1010,25 +996,6 @@ buffer_free(&m); return (major); -} - -OM_uint32 -mm_ssh_gssapi_checkmic(Gssctxt *ctx, gss_buffer_t gssbuf, gss_buffer_t gssmic) -{ - Buffer m; - OM_uint32 major; - - buffer_init(&m); - buffer_put_string(&m, gssbuf->value, gssbuf->length); - buffer_put_string(&m, gssmic->value, gssmic->length); - - mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_GSSCHECKMIC, &m); - mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_GSSCHECKMIC, - &m); - - major = buffer_get_int(&m); - buffer_free(&m); - return(major); } int