diff cli-kex.c @ 106:e13f8a712a1c

Fix if the first write fails
author Matt Johnston <matt@ucc.asn.au>
date Tue, 24 Aug 2004 07:22:36 +0000
parents 29a5c7c62350
children 0cfba3034be5
line wrap: on
line diff
--- a/cli-kex.c	Tue Aug 24 05:05:48 2004 +0000
+++ b/cli-kex.c	Tue Aug 24 07:22:36 2004 +0000
@@ -164,13 +164,16 @@
 
 	snprintf(filename, len+18, "%s/.ssh/known_hosts", pw->pw_dir);
 	hostsfile = fopen(filename, "a+");
-	fseek(hostsfile, 0, SEEK_SET);
 	
-	/* We mightn't have been able to open it if it was read-only */
-	if (hostsfile == NULL && (errno == EACCES || errno == EROFS)) {
-			TRACE(("trying readonly: %s", strerror(errno)));
-			readonly = 1;
-			hostsfile = fopen(filename, "r");
+	if (hostsfile != NULL) {
+		fseek(hostsfile, 0, SEEK_SET);
+	} else {
+		/* We mightn't have been able to open it if it was read-only */
+		if (errno == EACCES || errno == EROFS) {
+				TRACE(("trying readonly: %s", strerror(errno)));
+				readonly = 1;
+				hostsfile = fopen(filename, "r");
+		}
 	}
 
 	if (hostsfile == NULL) {