version 1.217, 2020/10/18 11:32:01 |
version 1.218, 2020/11/27 00:37:10 |
|
|
return (0); |
return (0); |
} |
} |
|
|
/* Retrieves the password entry and also checks if the user is permitted */ |
#define PUTPW(b, id) \ |
|
do { \ |
|
if ((r = sshbuf_put_string(b, \ |
|
&pwent->id, sizeof(pwent->id))) != 0) \ |
|
fatal_fr(r, "assemble %s", #id); \ |
|
} while (0) |
|
|
|
/* Retrieves the password entry and also checks if the user is permitted */ |
int |
int |
mm_answer_pwnamallow(struct ssh *ssh, int sock, struct sshbuf *m) |
mm_answer_pwnamallow(struct ssh *ssh, int sock, struct sshbuf *m) |
{ |
{ |
|
|
authctxt->pw = pwent; |
authctxt->pw = pwent; |
authctxt->valid = 1; |
authctxt->valid = 1; |
|
|
/* XXX don't sent pwent to unpriv; send fake class/dir/shell too */ |
/* XXX send fake class/dir/shell, etc. */ |
if ((r = sshbuf_put_u8(m, 1)) != 0 || |
if ((r = sshbuf_put_u8(m, 1)) != 0) |
(r = sshbuf_put_string(m, pwent, sizeof(*pwent))) != 0 || |
fatal_fr(r, "assemble ok"); |
(r = sshbuf_put_cstring(m, pwent->pw_name)) != 0 || |
PUTPW(m, pw_uid); |
|
PUTPW(m, pw_gid); |
|
PUTPW(m, pw_change); |
|
PUTPW(m, pw_expire); |
|
if ((r = sshbuf_put_cstring(m, pwent->pw_name)) != 0 || |
(r = sshbuf_put_cstring(m, "*")) != 0 || |
(r = sshbuf_put_cstring(m, "*")) != 0 || |
(r = sshbuf_put_cstring(m, pwent->pw_gecos)) != 0 || |
(r = sshbuf_put_cstring(m, pwent->pw_gecos)) != 0 || |
(r = sshbuf_put_cstring(m, pwent->pw_class)) != 0 || |
(r = sshbuf_put_cstring(m, pwent->pw_class)) != 0 || |