- djm@cvs.openbsd.org 2006/03/19 07:41:30
     [sshconnect2.c]
     memory leaks detected by Coverity via elad AT netbsd.org;
     deraadt@ ok
diff --git a/sshconnect2.c b/sshconnect2.c
index b7aa96e..f8d2148 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -513,8 +513,10 @@
 		}
 	}
 
-	if (!ok)
+	if (!ok) {
+		ssh_gssapi_delete_ctx(&gssctxt);
 		return 0;
+	}
 
 	authctxt->methoddata=(void *)gssctxt;
 
@@ -1330,6 +1332,7 @@
 	if (p == NULL) {
 		error("userauth_hostbased: cannot get local ipaddr/name");
 		key_free(private);
+		xfree(blob);
 		return 0;
 	}
 	len = strlen(p) + 2;
@@ -1368,6 +1371,7 @@
 		error("key_sign failed");
 		xfree(chost);
 		xfree(pkalg);
+		xfree(blob);
 		return 0;
 	}
 	packet_start(SSH2_MSG_USERAUTH_REQUEST);
@@ -1383,6 +1387,7 @@
 	xfree(signature);
 	xfree(chost);
 	xfree(pkalg);
+	xfree(blob);
 
 	packet_send();
 	return 1;