# HG changeset patch # User Matt Johnston # Date 1093332156 0 # Node ID e13f8a712a1c1ea383fecf943242a296ad997156 # Parent 68b84c20ca1ee743374c88404526174e59d0ef8e Fix if the first write fails diff -r 68b84c20ca1e -r e13f8a712a1c cli-kex.c --- 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) {