sync with OpenBSD -current
This commit is contained in:
parent
57ecf9bd1d
commit
b5356a44af
156 changed files with 3600 additions and 2644 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: monitor.c,v 1.237 2023/08/16 16:14:11 djm Exp $ */
|
||||
/* $OpenBSD: monitor.c,v 1.239 2024/05/17 06:42:04 jsg Exp $ */
|
||||
/*
|
||||
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
|
||||
* Copyright 2002 Markus Friedl <markus@openbsd.org>
|
||||
|
@ -110,8 +110,6 @@ int mm_answer_keyverify(struct ssh *, int, struct sshbuf *);
|
|||
int mm_answer_pty(struct ssh *, int, struct sshbuf *);
|
||||
int mm_answer_pty_cleanup(struct ssh *, int, struct sshbuf *);
|
||||
int mm_answer_term(struct ssh *, int, struct sshbuf *);
|
||||
int mm_answer_sesskey(struct ssh *, int, struct sshbuf *);
|
||||
int mm_answer_sessid(struct ssh *, int, struct sshbuf *);
|
||||
|
||||
#ifdef GSSAPI
|
||||
int mm_answer_gss_setup_ctx(struct ssh *, int, struct sshbuf *);
|
||||
|
@ -641,13 +639,39 @@ mm_answer_sign(struct ssh *ssh, int sock, struct sshbuf *m)
|
|||
fatal_fr(r, "assemble %s", #id); \
|
||||
} while (0)
|
||||
|
||||
void
|
||||
mm_encode_server_options(struct sshbuf *m)
|
||||
{
|
||||
int r;
|
||||
u_int i;
|
||||
|
||||
/* XXX this leaks raw pointers to the unpriv child processes */
|
||||
if ((r = sshbuf_put_string(m, &options, sizeof(options))) != 0)
|
||||
fatal_fr(r, "assemble options");
|
||||
|
||||
#define M_CP_STROPT(x) do { \
|
||||
if (options.x != NULL && \
|
||||
(r = sshbuf_put_cstring(m, options.x)) != 0) \
|
||||
fatal_fr(r, "assemble %s", #x); \
|
||||
} while (0)
|
||||
#define M_CP_STRARRAYOPT(x, nx) do { \
|
||||
for (i = 0; i < options.nx; i++) { \
|
||||
if ((r = sshbuf_put_cstring(m, options.x[i])) != 0) \
|
||||
fatal_fr(r, "assemble %s", #x); \
|
||||
} \
|
||||
} while (0)
|
||||
/* See comment in servconf.h */
|
||||
COPY_MATCH_STRING_OPTS();
|
||||
#undef M_CP_STROPT
|
||||
#undef M_CP_STRARRAYOPT
|
||||
}
|
||||
|
||||
/* Retrieves the password entry and also checks if the user is permitted */
|
||||
int
|
||||
mm_answer_pwnamallow(struct ssh *ssh, int sock, struct sshbuf *m)
|
||||
{
|
||||
struct passwd *pwent;
|
||||
int r, allowed = 0;
|
||||
u_int i;
|
||||
|
||||
debug3_f("entering");
|
||||
|
||||
|
@ -692,24 +716,9 @@ mm_answer_pwnamallow(struct ssh *ssh, int sock, struct sshbuf *m)
|
|||
out:
|
||||
ssh_packet_set_log_preamble(ssh, "%suser %s",
|
||||
authctxt->valid ? "authenticating" : "invalid ", authctxt->user);
|
||||
if ((r = sshbuf_put_string(m, &options, sizeof(options))) != 0)
|
||||
fatal_fr(r, "assemble options");
|
||||
|
||||
#define M_CP_STROPT(x) do { \
|
||||
if (options.x != NULL && \
|
||||
(r = sshbuf_put_cstring(m, options.x)) != 0) \
|
||||
fatal_fr(r, "assemble %s", #x); \
|
||||
} while (0)
|
||||
#define M_CP_STRARRAYOPT(x, nx) do { \
|
||||
for (i = 0; i < options.nx; i++) { \
|
||||
if ((r = sshbuf_put_cstring(m, options.x[i])) != 0) \
|
||||
fatal_fr(r, "assemble %s", #x); \
|
||||
} \
|
||||
} while (0)
|
||||
/* See comment in servconf.h */
|
||||
COPY_MATCH_STRING_OPTS();
|
||||
#undef M_CP_STROPT
|
||||
#undef M_CP_STRARRAYOPT
|
||||
/* Send active options to unpriv */
|
||||
mm_encode_server_options(m);
|
||||
|
||||
/* Create valid auth method lists */
|
||||
if (auth2_setup_methods_lists(authctxt) != 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue