summaryrefslogtreecommitdiff
path: root/session.c
diff options
context:
space:
mode:
authormarkus@openbsd.org <markus@openbsd.org>2018-07-09 21:26:02 +0000
committerDamien Miller <djm@mindrot.org>2018-07-10 15:21:58 +1000
commit2808d18ca47ad3d251836c555f0e22aaca03d15c (patch)
tree06bc9605dd843d77ee25187637e348369e59cb1d /session.c
parent89dd615b8b531979be63f05f9d5624367c9b28e6 (diff)
upstream: sshd: switch loginmsg to sshbuf API; ok djm@
OpenBSD-Commit-ID: f3cb4e54bff15c593602d95cc43e32ee1a4bac42
Diffstat (limited to 'session.c')
-rw-r--r--session.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/session.c b/session.c
index 882359025..2b46837dc 100644
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: session.c,v 1.302 2018/07/09 21:20:26 markus Exp $ */ 1/* $OpenBSD: session.c,v 1.303 2018/07/09 21:26:02 markus Exp $ */
2/* 2/*
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 * All rights reserved 4 * All rights reserved
@@ -69,7 +69,8 @@
69#include "ssh2.h" 69#include "ssh2.h"
70#include "sshpty.h" 70#include "sshpty.h"
71#include "packet.h" 71#include "packet.h"
72#include "buffer.h" 72#include "sshbuf.h"
73#include "ssherr.h"
73#include "match.h" 74#include "match.h"
74#include "uidswap.h" 75#include "uidswap.h"
75#include "compat.h" 76#include "compat.h"
@@ -139,7 +140,7 @@ extern int debug_flag;
139extern u_int utmp_len; 140extern u_int utmp_len;
140extern int startup_pipe; 141extern int startup_pipe;
141extern void destroy_sensitive_data(void); 142extern void destroy_sensitive_data(void);
142extern Buffer loginmsg; 143extern struct sshbuf *loginmsg;
143extern struct sshauthopt *auth_opts; 144extern struct sshauthopt *auth_opts;
144char *tun_fwd_ifnames; /* serverloop.c */ 145char *tun_fwd_ifnames; /* serverloop.c */
145 146
@@ -248,11 +249,14 @@ auth_input_request_forwarding(struct ssh *ssh, struct passwd * pw)
248static void 249static void
249display_loginmsg(void) 250display_loginmsg(void)
250{ 251{
251 if (buffer_len(&loginmsg) > 0) { 252 int r;
252 buffer_append(&loginmsg, "\0", 1); 253
253 printf("%s", (char *)buffer_ptr(&loginmsg)); 254 if (sshbuf_len(loginmsg) == 0)
254 buffer_clear(&loginmsg); 255 return;
255 } 256 if ((r = sshbuf_put_u8(loginmsg, 0)) != 0)
257 fatal("%s: buffer error: %s", __func__, ssh_err(r));
258 printf("%s", (char *)sshbuf_ptr(loginmsg));
259 sshbuf_reset(loginmsg);
256} 260}
257 261
258static void 262static void
@@ -757,7 +761,7 @@ do_exec(struct ssh *ssh, Session *s, const char *command)
757 * it to the user, otherwise multiple sessions may accumulate 761 * it to the user, otherwise multiple sessions may accumulate
758 * multiple copies of the login messages. 762 * multiple copies of the login messages.
759 */ 763 */
760 buffer_clear(&loginmsg); 764 sshbuf_reset(loginmsg);
761 765
762 return ret; 766 return ret;
763} 767}