summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2019-01-19 21:34:46 +0000
committerDamien Miller <djm@cvs.openbsd.org>2019-01-19 21:34:46 +0000
commit29472033393ae7da7d8625887255d246bcabdc43 (patch)
tree9363c4e3b0fb37f0cb219fa82b0215ff2eef1ce5
parent751c697c34e66547c94550c60b3c184d4993e7a4 (diff)
convert sshconnect2.c to new packet API
with & ok markus@
-rw-r--r--usr.bin/ssh/sshconnect2.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/usr.bin/ssh/sshconnect2.c b/usr.bin/ssh/sshconnect2.c
index c865cd92f31..d6ffc329295 100644
--- a/usr.bin/ssh/sshconnect2.c
+++ b/usr.bin/ssh/sshconnect2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect2.c,v 1.293 2019/01/19 21:31:32 djm Exp $ */
+/* $OpenBSD: sshconnect2.c,v 1.294 2019/01/19 21:34:45 djm Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2008 Damien Miller. All rights reserved.
@@ -191,7 +191,7 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port)
}
if (options.rekey_limit || options.rekey_interval)
- packet_set_rekey_limits(options.rekey_limit,
+ ssh_packet_set_rekey_limits(ssh, options.rekey_limit,
options.rekey_interval);
/* start key exchange */
@@ -502,17 +502,21 @@ input_userauth_error(int type, u_int32_t seq, struct ssh *ssh)
int
input_userauth_banner(int type, u_int32_t seq, struct ssh *ssh)
{
- char *msg, *lang;
- u_int len;
+ char *msg = NULL, *lang = NULL;
+ size_t len;
+ int r;
debug3("%s", __func__);
- msg = packet_get_string(&len);
- lang = packet_get_string(NULL);
+ if ((r = sshpkt_get_cstring(ssh, &msg, &len)) != 0 ||
+ (r = sshpkt_get_cstring(ssh, &lang, NULL)) != 0)
+ goto out;
if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO)
fmprintf(stderr, "%s", msg);
+ r = 0;
+ out:
free(msg);
free(lang);
- return 0;
+ return r;
}
/* ARGSUSED */
@@ -1798,13 +1802,13 @@ input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh)
}
static int
-ssh_keysign(struct sshkey *key, u_char **sigp, size_t *lenp,
+ssh_keysign(struct ssh *ssh, struct sshkey *key, u_char **sigp, size_t *lenp,
const u_char *data, size_t datalen)
{
struct sshbuf *b;
struct stat st;
pid_t pid;
- int i, r, to[2], from[2], status, sock = packet_get_connection_in();
+ int i, r, to[2], from[2], status, sock = ssh_packet_get_connection_in(ssh);
u_char rversion = 0, version = 2;
void (*osigchld)(int);
@@ -1978,7 +1982,7 @@ userauth_hostbased(Authctxt *authctxt)
__func__, sshkey_ssh_name(private), fp);
/* figure out a name for the client host */
- if ((lname = get_local_name(packet_get_connection_in())) == NULL) {
+ if ((lname = get_local_name(ssh_packet_get_connection_in(ssh))) == NULL) {
error("%s: cannot get local ipaddr/name", __func__);
goto out;
}
@@ -2012,9 +2016,8 @@ userauth_hostbased(Authctxt *authctxt)
#ifdef DEBUG_PK
sshbuf_dump(b, stderr);
#endif
- r = ssh_keysign(private, &sig, &siglen,
- sshbuf_ptr(b), sshbuf_len(b));
- if (r != 0) {
+ if ((r = ssh_keysign(ssh, private, &sig, &siglen,
+ sshbuf_ptr(b), sshbuf_len(b))) != 0) {
error("sign using hostkey %s %s failed",
sshkey_ssh_name(private), fp);
goto out;