diff options
author | Simon Josefsson <simon@josefsson.org> | 2008-05-20 06:59:52 +0200 |
---|---|---|
committer | Simon Josefsson <simon@josefsson.org> | 2008-05-20 06:59:52 +0200 |
commit | 830cdc0796d0cc7055cef987a50052d0ef3d55cf (patch) | |
tree | a0ce47c40a64fbbf685abac8c71a569489658fca | |
parent | 10f580d2ee1440695138b52f65e89e70ebf1830e (diff) | |
download | gnutls-830cdc0796d0cc7055cef987a50052d0ef3d55cf.tar.gz |
Restore umask after opening file.
Suggested by Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
-rw-r--r-- | src/certtool.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/certtool.c b/src/certtool.c index c6aeb2c59a..bf0990f7a7 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -821,12 +821,22 @@ update_signed_certificate (void) FILE* safe_open_rw(const char* file) { - if (info.privkey_op != 0) - { - umask(S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH); - } + mode_t oldmask; + FILE *fh; + + if (info.privkey_op != 0) + { + oldmask = umask (S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH); + } + + fh = fopen (file, "wb"); + + if (info.privkey_op != 0) + { + umask (oldmask); + } - return fopen (file, "wb"); + return fh; } void |