summaryrefslogtreecommitdiff
path: root/hostfile.c
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2015-01-26 13:36:53 +0000
committerDamien Miller <djm@mindrot.org>2015-01-27 00:37:35 +1100
commit3076ee7d530d5b16842fac7a6229706c7e5acd26 (patch)
tree2dac135bdfc06f5c94deeab2f2d3a2e963d24447 /hostfile.c
parentd411d395556b73ba1b9e451516a0bd6697c4b03d (diff)
downloadopenssh-git-3076ee7d530d5b16842fac7a6229706c7e5acd26.tar.gz
upstream commit
properly restore umask
Diffstat (limited to 'hostfile.c')
-rw-r--r--hostfile.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/hostfile.c b/hostfile.c
index 9de1b383..ea6bc6fc 100644
--- a/hostfile.c
+++ b/hostfile.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hostfile.c,v 1.62 2015/01/26 03:04:45 djm Exp $ */
+/* $OpenBSD: hostfile.c,v 1.63 2015/01/26 13:36:53 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -551,6 +551,8 @@ hostfile_replace_entries(const char *filename, const char *host,
mode_t omask;
size_t i;
+ omask = umask(077);
+
memset(&ctx, 0, sizeof(ctx));
ctx.host = host;
ctx.quiet = quiet;
@@ -568,7 +570,6 @@ hostfile_replace_entries(const char *filename, const char *host,
goto fail;
}
- omask = umask(077);
if ((fd = mkstemp(temp)) == -1) {
oerrno = errno;
error("%s: mkstemp: %s", __func__, strerror(oerrno));
@@ -636,6 +637,7 @@ hostfile_replace_entries(const char *filename, const char *host,
if (ctx.out != NULL)
fclose(ctx.out);
free(ctx.skip_keys);
+ umask(omask);
if (r == SSH_ERR_SYSTEM_ERROR)
errno = oerrno;
return r;