1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-02-09 16:36:34 +00:00

Report errors in store_host_key too.

[originally from svn r9934]
This commit is contained in:
Simon Tatham 2013-07-19 17:44:38 +00:00
parent 2854ae1f33
commit b4adf61bc7

View File

@ -596,18 +596,28 @@ void store_host_key(const char *hostname, int port,
*/ */
tmpfilename = make_filename(INDEX_HOSTKEYS_TMP, NULL); tmpfilename = make_filename(INDEX_HOSTKEYS_TMP, NULL);
wfp = fopen(tmpfilename, "w"); wfp = fopen(tmpfilename, "w");
if (!wfp) { if (!wfp && errno == ENOENT) {
char *dir; char *dir;
dir = make_filename(INDEX_DIR, NULL); dir = make_filename(INDEX_DIR, NULL);
mkdir(dir, 0700); if (mkdir(dir, 0700) < 0) {
char *msg = dupprintf("Unable to store host key: mkdir(\"%s\") "
"returned '%s'", dir, strerror(errno));
nonfatal(msg);
sfree(dir);
sfree(tmpfilename);
return;
}
sfree(dir); sfree(dir);
wfp = fopen(tmpfilename, "w"); wfp = fopen(tmpfilename, "w");
} }
if (!wfp) { if (!wfp) {
sfree(tmpfilename); char *msg = dupprintf("Unable to store host key: open(\"%s\") "
return; "returned '%s'", tmpfilename, strerror(errno));
nonfatal(msg);
sfree(tmpfilename);
return;
} }
filename = make_filename(INDEX_HOSTKEYS, NULL); filename = make_filename(INDEX_HOSTKEYS, NULL);
rfp = fopen(filename, "r"); rfp = fopen(filename, "r");