diff options
author | kris <kris@FreeBSD.org> | 2001-05-06 03:07:12 +0000 |
---|---|---|
committer | kris <kris@FreeBSD.org> | 2001-05-06 03:07:12 +0000 |
commit | ca9754c62774b32d7517180537892b8368b06456 (patch) | |
tree | 3e04a97826e97fe6589530618355cfa90a3992bb /gnu/usr.bin/rcs/lib/rcsedit.c | |
parent | 08e03c867950bb514bac8b48cb92a19593e550ff (diff) | |
download | FreeBSD-src-ca9754c62774b32d7517180537892b8368b06456.zip FreeBSD-src-ca9754c62774b32d7517180537892b8368b06456.tar.gz |
Create temporary files securely using mkstemp() instead of mktemp()
Reviewed by: mikeh, audit@
MFC after: 1 week
Diffstat (limited to 'gnu/usr.bin/rcs/lib/rcsedit.c')
-rw-r--r-- | gnu/usr.bin/rcs/lib/rcsedit.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gnu/usr.bin/rcs/lib/rcsedit.c b/gnu/usr.bin/rcs/lib/rcsedit.c index ef6c7f7..dc9dd30 100644 --- a/gnu/usr.bin/rcs/lib/rcsedit.c +++ b/gnu/usr.bin/rcs/lib/rcsedit.c @@ -1507,6 +1507,9 @@ makedirtemp(isworkfile) register size_t dl; register struct buf *bn; register char const *name = isworkfile ? workname : RCSname; +# if has_mktemp + int fd; +# endif dl = basefilename(name) - name; bn = &dirtpname[newRCSdirtp_index + isworkfile]; @@ -1525,10 +1528,12 @@ makedirtemp(isworkfile) catchints(); # if has_mktemp VOID strcpy(tp, "XXXXXX"); - if (!mktemp(np) || !*np) + fd = mkstemp(np); + if (fd < 0 || !*np) faterror("can't make temporary pathname `%.*s_%cXXXXXX'", (int)dl, name, '0'+isworkfile ); + close(fd); # else /* * Posix 1003.1-1990 has no reliable way |