Mercurial > dovecot > original-hg > dovecot-1.2
changeset 9001:5302ce189a70 HEAD
safe_mkstemp()'s mode parameter didn't override umask as it was supposed to.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 01 May 2009 12:30:07 -0400 |
parents | b02c642b4e51 |
children | 89b825b20f76 |
files | src/lib/safe-mkstemp.c |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/safe-mkstemp.c Thu Apr 30 20:22:49 2009 -0400 +++ b/src/lib/safe-mkstemp.c Fri May 01 12:30:07 2009 -0400 @@ -16,6 +16,7 @@ size_t prefix_len; struct stat st; unsigned char randbuf[8]; + mode_t old_umask; int fd; prefix_len = str_len(prefix); @@ -32,7 +33,9 @@ return -1; } - fd = open(str_c(prefix), O_RDWR | O_EXCL | O_CREAT, mode); + old_umask = umask(0666 ^ mode); + fd = open(str_c(prefix), O_RDWR | O_EXCL | O_CREAT, 0666); + umask(old_umask); if (fd != -1) break;