diff options
author | Damien Miller <djm@mindrot.org> | 2002-05-13 11:07:41 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2002-05-13 11:07:41 +1000 |
commit | 5ad9fd982037e512355cfd5fe060a554934be243 (patch) | |
tree | 8c2793a1431a8afd322789c8db95fa577c2fcce6 /monitor.c | |
parent | 80080753cd577bd670133660428821225304c361 (diff) |
- (djm) Bug #231: UsePrivilegeSeparation turns off Banner.
Diffstat (limited to 'monitor.c')
-rw-r--r-- | monitor.c | 23 |
1 files changed, 21 insertions, 2 deletions
@@ -25,7 +25,7 @@ | |||
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "includes.h" | 27 | #include "includes.h" |
28 | RCSID("$OpenBSD: monitor.c,v 1.9 2002/03/30 18:51:15 markus Exp $"); | 28 | RCSID("$OpenBSD: monitor.c,v 1.10 2002/05/12 23:53:45 djm Exp $"); |
29 | 29 | ||
30 | #include <openssl/dh.h> | 30 | #include <openssl/dh.h> |
31 | 31 | ||
@@ -96,6 +96,7 @@ struct { | |||
96 | int mm_answer_moduli(int, Buffer *); | 96 | int mm_answer_moduli(int, Buffer *); |
97 | int mm_answer_sign(int, Buffer *); | 97 | int mm_answer_sign(int, Buffer *); |
98 | int mm_answer_pwnamallow(int, Buffer *); | 98 | int mm_answer_pwnamallow(int, Buffer *); |
99 | int mm_answer_auth2_read_banner(int, Buffer *); | ||
99 | int mm_answer_authserv(int, Buffer *); | 100 | int mm_answer_authserv(int, Buffer *); |
100 | int mm_answer_authpassword(int, Buffer *); | 101 | int mm_answer_authpassword(int, Buffer *); |
101 | int mm_answer_bsdauthquery(int, Buffer *); | 102 | int mm_answer_bsdauthquery(int, Buffer *); |
@@ -147,6 +148,7 @@ struct mon_table mon_dispatch_proto20[] = { | |||
147 | {MONITOR_REQ_SIGN, MON_ONCE, mm_answer_sign}, | 148 | {MONITOR_REQ_SIGN, MON_ONCE, mm_answer_sign}, |
148 | {MONITOR_REQ_PWNAM, MON_ONCE, mm_answer_pwnamallow}, | 149 | {MONITOR_REQ_PWNAM, MON_ONCE, mm_answer_pwnamallow}, |
149 | {MONITOR_REQ_AUTHSERV, MON_ONCE, mm_answer_authserv}, | 150 | {MONITOR_REQ_AUTHSERV, MON_ONCE, mm_answer_authserv}, |
151 | {MONITOR_REQ_AUTH2_READ_BANNER, MON_ONCE, mm_answer_auth2_read_banner}, | ||
150 | {MONITOR_REQ_AUTHPASSWORD, MON_AUTH, mm_answer_authpassword}, | 152 | {MONITOR_REQ_AUTHPASSWORD, MON_AUTH, mm_answer_authpassword}, |
151 | #ifdef USE_PAM | 153 | #ifdef USE_PAM |
152 | {MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start}, | 154 | {MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start}, |
@@ -524,9 +526,11 @@ mm_answer_pwnamallow(int socket, Buffer *m) | |||
524 | /* For SSHv1 allow authentication now */ | 526 | /* For SSHv1 allow authentication now */ |
525 | if (!compat20) | 527 | if (!compat20) |
526 | monitor_permit_authentications(1); | 528 | monitor_permit_authentications(1); |
527 | else | 529 | else { |
528 | /* Allow service/style information on the auth context */ | 530 | /* Allow service/style information on the auth context */ |
529 | monitor_permit(mon_dispatch, MONITOR_REQ_AUTHSERV, 1); | 531 | monitor_permit(mon_dispatch, MONITOR_REQ_AUTHSERV, 1); |
532 | monitor_permit(mon_dispatch, MONITOR_REQ_AUTH2_READ_BANNER, 1); | ||
533 | } | ||
530 | 534 | ||
531 | #ifdef USE_PAM | 535 | #ifdef USE_PAM |
532 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_START, 1); | 536 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_START, 1); |
@@ -535,6 +539,21 @@ mm_answer_pwnamallow(int socket, Buffer *m) | |||
535 | return (0); | 539 | return (0); |
536 | } | 540 | } |
537 | 541 | ||
542 | int mm_answer_auth2_read_banner(int socket, Buffer *m) | ||
543 | { | ||
544 | char *banner; | ||
545 | |||
546 | buffer_clear(m); | ||
547 | banner = auth2_read_banner(); | ||
548 | buffer_put_cstring(m, banner != NULL ? banner : ""); | ||
549 | mm_request_send(socket, MONITOR_ANS_AUTH2_READ_BANNER, m); | ||
550 | |||
551 | if (banner != NULL) | ||
552 | free(banner); | ||
553 | |||
554 | return (0); | ||
555 | } | ||
556 | |||
538 | int | 557 | int |
539 | mm_answer_authserv(int socket, Buffer *m) | 558 | mm_answer_authserv(int socket, Buffer *m) |
540 | { | 559 | { |