Commit 81be2f467ce679e5e1a4b650ebdfc15ce3a9deb7

Carlos Martín Nieto 2015-06-09T16:01:29

ssh: move NULL check to the free function Let `ssh_stream_free()` take a NULL stream, as free functions should, and remove the check from the connection setup. The connection setup would not need the check anyhow, as we always have a stream by the time we reach this code.

diff --git a/src/transports/ssh.c b/src/transports/ssh.c
index 5c8545f..83af137 100644
--- a/src/transports/ssh.c
+++ b/src/transports/ssh.c
@@ -177,11 +177,12 @@ static int ssh_stream_write(
 static void ssh_stream_free(git_smart_subtransport_stream *stream)
 {
 	ssh_stream *s = (ssh_stream *)stream;
-	ssh_subtransport *t = OWNING_SUBTRANSPORT(s);
-	int ret;
+	ssh_subtransport *t;
 
-	GIT_UNUSED(ret);
+	if (!stream)
+		return;
 
+	t = OWNING_SUBTRANSPORT(s);
 	t->current_stream = NULL;
 
 	if (s->channel) {
@@ -621,8 +622,7 @@ static int _git_ssh_setup_conn(
 
 done:
 	if (error < 0) {
-		if (*stream)
-			ssh_stream_free(*stream);
+		ssh_stream_free(*stream);
 
 		if (session)
 			libssh2_session_free(session);