summaryrefslogtreecommitdiff
path: root/monitor_wrap.c
diff options
context:
space:
mode:
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r--monitor_wrap.c38
1 files changed, 20 insertions, 18 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c
index ed8dbdadf..433b234d2 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor_wrap.c,v 1.75 2013/01/08 18:49:04 markus Exp $ */ 1/* $OpenBSD: monitor_wrap.c,v 1.76 2013/05/17 00:13:13 djm Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -259,8 +259,10 @@ mm_getpwnamallow(const char *username)
259 fatal("%s: struct passwd size mismatch", __func__); 259 fatal("%s: struct passwd size mismatch", __func__);
260 pw->pw_name = buffer_get_string(&m, NULL); 260 pw->pw_name = buffer_get_string(&m, NULL);
261 pw->pw_passwd = buffer_get_string(&m, NULL); 261 pw->pw_passwd = buffer_get_string(&m, NULL);
262#ifdef HAVE_STRUCT_PASSWD_PW_GECOS
262 pw->pw_gecos = buffer_get_string(&m, NULL); 263 pw->pw_gecos = buffer_get_string(&m, NULL);
263#ifdef HAVE_PW_CLASS_IN_PASSWD 264#endif
265#ifdef HAVE_STRUCT_PASSWD_PW_CLASS
264 pw->pw_class = buffer_get_string(&m, NULL); 266 pw->pw_class = buffer_get_string(&m, NULL);
265#endif 267#endif
266 pw->pw_dir = buffer_get_string(&m, NULL); 268 pw->pw_dir = buffer_get_string(&m, NULL);
@@ -286,7 +288,7 @@ out:
286#undef M_CP_STRARRAYOPT 288#undef M_CP_STRARRAYOPT
287 289
288 copy_set_server_options(&options, newopts, 1); 290 copy_set_server_options(&options, newopts, 1);
289 xfree(newopts); 291 free(newopts);
290 292
291 buffer_free(&m); 293 buffer_free(&m);
292 294
@@ -312,7 +314,7 @@ mm_auth2_read_banner(void)
312 314
313 /* treat empty banner as missing banner */ 315 /* treat empty banner as missing banner */
314 if (strlen(banner) == 0) { 316 if (strlen(banner) == 0) {
315 xfree(banner); 317 free(banner);
316 banner = NULL; 318 banner = NULL;
317 } 319 }
318 return (banner); 320 return (banner);
@@ -405,7 +407,7 @@ mm_key_allowed(enum mm_keytype type, char *user, char *host, Key *key)
405 buffer_put_cstring(&m, user ? user : ""); 407 buffer_put_cstring(&m, user ? user : "");
406 buffer_put_cstring(&m, host ? host : ""); 408 buffer_put_cstring(&m, host ? host : "");
407 buffer_put_string(&m, blob, len); 409 buffer_put_string(&m, blob, len);
408 xfree(blob); 410 free(blob);
409 411
410 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYALLOWED, &m); 412 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYALLOWED, &m);
411 413
@@ -448,7 +450,7 @@ mm_key_verify(Key *key, u_char *sig, u_int siglen, u_char *data, u_int datalen)
448 buffer_put_string(&m, blob, len); 450 buffer_put_string(&m, blob, len);
449 buffer_put_string(&m, sig, siglen); 451 buffer_put_string(&m, sig, siglen);
450 buffer_put_string(&m, data, datalen); 452 buffer_put_string(&m, data, datalen);
451 xfree(blob); 453 free(blob);
452 454
453 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYVERIFY, &m); 455 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYVERIFY, &m);
454 456
@@ -617,7 +619,7 @@ mm_send_keystate(struct monitor *monitor)
617 keylen = packet_get_encryption_key(key); 619 keylen = packet_get_encryption_key(key);
618 buffer_put_string(&m, key, keylen); 620 buffer_put_string(&m, key, keylen);
619 memset(key, 0, keylen); 621 memset(key, 0, keylen);
620 xfree(key); 622 free(key);
621 623
622 ivlen = packet_get_keyiv_len(MODE_OUT); 624 ivlen = packet_get_keyiv_len(MODE_OUT);
623 packet_get_keyiv(MODE_OUT, iv, ivlen); 625 packet_get_keyiv(MODE_OUT, iv, ivlen);
@@ -640,13 +642,13 @@ mm_send_keystate(struct monitor *monitor)
640 fatal("%s: conversion of newkeys failed", __func__); 642 fatal("%s: conversion of newkeys failed", __func__);
641 643
642 buffer_put_string(&m, blob, bloblen); 644 buffer_put_string(&m, blob, bloblen);
643 xfree(blob); 645 free(blob);
644 646
645 if (!mm_newkeys_to_blob(MODE_IN, &blob, &bloblen)) 647 if (!mm_newkeys_to_blob(MODE_IN, &blob, &bloblen))
646 fatal("%s: conversion of newkeys failed", __func__); 648 fatal("%s: conversion of newkeys failed", __func__);
647 649
648 buffer_put_string(&m, blob, bloblen); 650 buffer_put_string(&m, blob, bloblen);
649 xfree(blob); 651 free(blob);
650 652
651 packet_get_state(MODE_OUT, &seqnr, &blocks, &packets, &bytes); 653 packet_get_state(MODE_OUT, &seqnr, &blocks, &packets, &bytes);
652 buffer_put_int(&m, seqnr); 654 buffer_put_int(&m, seqnr);
@@ -666,13 +668,13 @@ mm_send_keystate(struct monitor *monitor)
666 p = xmalloc(plen+1); 668 p = xmalloc(plen+1);
667 packet_get_keycontext(MODE_OUT, p); 669 packet_get_keycontext(MODE_OUT, p);
668 buffer_put_string(&m, p, plen); 670 buffer_put_string(&m, p, plen);
669 xfree(p); 671 free(p);
670 672
671 plen = packet_get_keycontext(MODE_IN, NULL); 673 plen = packet_get_keycontext(MODE_IN, NULL);
672 p = xmalloc(plen+1); 674 p = xmalloc(plen+1);
673 packet_get_keycontext(MODE_IN, p); 675 packet_get_keycontext(MODE_IN, p);
674 buffer_put_string(&m, p, plen); 676 buffer_put_string(&m, p, plen);
675 xfree(p); 677 free(p);
676 678
677 /* Compression state */ 679 /* Compression state */
678 debug3("%s: Sending compression state", __func__); 680 debug3("%s: Sending compression state", __func__);
@@ -734,10 +736,10 @@ mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen)
734 buffer_free(&m); 736 buffer_free(&m);
735 737
736 strlcpy(namebuf, p, namebuflen); /* Possible truncation */ 738 strlcpy(namebuf, p, namebuflen); /* Possible truncation */
737 xfree(p); 739 free(p);
738 740
739 buffer_append(&loginmsg, msg, strlen(msg)); 741 buffer_append(&loginmsg, msg, strlen(msg));
740 xfree(msg); 742 free(msg);
741 743
742 if ((*ptyfd = mm_receive_fd(pmonitor->m_recvfd)) == -1 || 744 if ((*ptyfd = mm_receive_fd(pmonitor->m_recvfd)) == -1 ||
743 (*ttyfd = mm_receive_fd(pmonitor->m_recvfd)) == -1) 745 (*ttyfd = mm_receive_fd(pmonitor->m_recvfd)) == -1)
@@ -803,7 +805,7 @@ mm_do_pam_account(void)
803 ret = buffer_get_int(&m); 805 ret = buffer_get_int(&m);
804 msg = buffer_get_string(&m, NULL); 806 msg = buffer_get_string(&m, NULL);
805 buffer_append(&loginmsg, msg, strlen(msg)); 807 buffer_append(&loginmsg, msg, strlen(msg));
806 xfree(msg); 808 free(msg);
807 809
808 buffer_free(&m); 810 buffer_free(&m);
809 811
@@ -1033,7 +1035,7 @@ mm_skey_query(void *ctx, char **name, char **infotxt,
1033 mm_chall_setup(name, infotxt, numprompts, prompts, echo_on); 1035 mm_chall_setup(name, infotxt, numprompts, prompts, echo_on);
1034 1036
1035 xasprintf(*prompts, "%s%s", challenge, SKEY_PROMPT); 1037 xasprintf(*prompts, "%s%s", challenge, SKEY_PROMPT);
1036 xfree(challenge); 1038 free(challenge);
1037 1039
1038 return (0); 1040 return (0);
1039} 1041}
@@ -1107,7 +1109,7 @@ mm_auth_rsa_key_allowed(struct passwd *pw, BIGNUM *client_n, Key **rkey)
1107 if ((key = key_from_blob(blob, blen)) == NULL) 1109 if ((key = key_from_blob(blob, blen)) == NULL)
1108 fatal("%s: key_from_blob failed", __func__); 1110 fatal("%s: key_from_blob failed", __func__);
1109 *rkey = key; 1111 *rkey = key;
1110 xfree(blob); 1112 free(blob);
1111 } 1113 }
1112 buffer_free(&m); 1114 buffer_free(&m);
1113 1115
@@ -1134,7 +1136,7 @@ mm_auth_rsa_generate_challenge(Key *key)
1134 1136
1135 buffer_init(&m); 1137 buffer_init(&m);
1136 buffer_put_string(&m, blob, blen); 1138 buffer_put_string(&m, blob, blen);
1137 xfree(blob); 1139 free(blob);
1138 1140
1139 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_RSACHALLENGE, &m); 1141 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_RSACHALLENGE, &m);
1140 mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_RSACHALLENGE, &m); 1142 mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_RSACHALLENGE, &m);
@@ -1163,7 +1165,7 @@ mm_auth_rsa_verify_response(Key *key, BIGNUM *p, u_char response[16])
1163 buffer_init(&m); 1165 buffer_init(&m);
1164 buffer_put_string(&m, blob, blen); 1166 buffer_put_string(&m, blob, blen);
1165 buffer_put_string(&m, response, 16); 1167 buffer_put_string(&m, response, 16);
1166 xfree(blob); 1168 free(blob);
1167 1169
1168 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_RSARESPONSE, &m); 1170 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_RSARESPONSE, &m);
1169 mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_RSARESPONSE, &m); 1171 mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_RSARESPONSE, &m);