=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sshconnect2.c,v retrieving revision 1.293 retrieving revision 1.294 diff -u -r1.293 -r1.294 --- src/usr.bin/ssh/sshconnect2.c 2019/01/19 21:31:32 1.293 +++ src/usr.bin/ssh/sshconnect2.c 2019/01/19 21:34:45 1.294 @@ -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 @@ } 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 @@ 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 @@ } 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 @@ __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 @@ #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;