[openssh-commits] [openssh] 02/02: upstream: make ssh_remote_ipaddr() capable of being called after

git+noreply at mindrot.org git+noreply at mindrot.org
Fri Jun 1 14:20:53 AEST 2018


This is an automated email from the git hooks/post-receive script.

djm pushed a commit to branch master
in repository openssh.

commit 854ae209f992465a276de0b5f10ef770510c2418
Author: djm at openbsd.org <djm at openbsd.org>
Date:   Fri Jun 1 04:05:29 2018 +0000

    upstream: make ssh_remote_ipaddr() capable of being called after
    
    the ssh->state has been torn down; bz#2773
    
    OpenBSD-Commit-ID: 167f12523613ca3d16d7716a690e7afa307dc7eb
---
 packet.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/packet.c b/packet.c
index 08a4d661..ab9a391b 100644
--- a/packet.c
+++ b/packet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: packet.c,v 1.270 2018/05/25 03:20:59 dtucker Exp $ */
+/* $OpenBSD: packet.c,v 1.271 2018/06/01 04:05:29 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo at cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo at cs.hut.fi>, Espoo, Finland
@@ -418,13 +418,16 @@ ssh_packet_start_discard(struct ssh *ssh, struct sshenc *enc,
 int
 ssh_packet_connection_is_on_socket(struct ssh *ssh)
 {
-	struct session_state *state = ssh->state;
+	struct session_state *state;
 	struct sockaddr_storage from, to;
 	socklen_t fromlen, tolen;
 
+	if (ssh == NULL || ssh->state == NULL)
+		return 0;
+
+	state = ssh->state;
 	if (state->connection_in == -1 || state->connection_out == -1)
 		return 0;
-
 	/* filedescriptors in and out are the same, so it's a socket */
 	if (state->connection_in == state->connection_out)
 		return 1;
@@ -508,11 +511,12 @@ ssh_packet_get_connection_out(struct ssh *ssh)
 const char *
 ssh_remote_ipaddr(struct ssh *ssh)
 {
-	const int sock = ssh->state->connection_in;
+	int sock;
 
 	/* Check whether we have cached the ipaddr. */
 	if (ssh->remote_ipaddr == NULL) {
 		if (ssh_packet_connection_is_on_socket(ssh)) {
+			sock = ssh->state->connection_in;
 			ssh->remote_ipaddr = get_peer_ipaddr(sock);
 			ssh->remote_port = get_peer_port(sock);
 			ssh->local_ipaddr = get_local_ipaddr(sock);

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list