summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/rcs/lib/rcsedit.c
diff options
context:
space:
mode:
authorkris <kris@FreeBSD.org>2001-05-06 03:07:12 +0000
committerkris <kris@FreeBSD.org>2001-05-06 03:07:12 +0000
commitca9754c62774b32d7517180537892b8368b06456 (patch)
tree3e04a97826e97fe6589530618355cfa90a3992bb /gnu/usr.bin/rcs/lib/rcsedit.c
parent08e03c867950bb514bac8b48cb92a19593e550ff (diff)
downloadFreeBSD-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.c7
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
OpenPOWER on IntegriCloud