- make_filename(dir, INDEX_DIR, NULL);
- mkdir(dir, 0700);
- fd = open(filename, O_CREAT | O_APPEND | O_RDWR, 0600);
+ /*
+ * Open both the old file and a new file.
+ */
+ make_filename(tmpfilename, INDEX_HOSTKEYS_TMP, NULL);
+ wfp = fopen(tmpfilename, "w");
+ if (!wfp) {
+ char dir[FILENAME_MAX];
+
+ make_filename(dir, INDEX_DIR, NULL);
+ mkdir(dir, 0700);
+ wfp = fopen(tmpfilename, "w");