From fb2226a9aebebf0ada6fcd298c400a5c58ee3008 Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Mon, 4 Dec 2000 05:25:47 +0000 Subject: [PATCH] Okay, we'll use O_EXCL also git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@383 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 2 +- files.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4e7d6d1f..6a157173 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,7 +3,7 @@ CVS code - write_file() - Added tmp check to TMP_OPT section (how apropriate). - Added new consistency checking code from securityfocus - article by Oliver Friedrichs. + article by Oliver Friedrichs, and use O_EXCL if tmp == 1. - winio.c: edit_add() - Off by one display error (fix by Rocco Corsi). diff --git a/files.c b/files.c index 0b38e3b5..c0299e40 100644 --- a/files.c +++ b/files.c @@ -334,7 +334,13 @@ int write_file(char *name, int tmp) return -1; else if (ISSET(FOLLOW_SYMLINKS) || !S_ISLNK(st.st_mode)) { - fd = open(realname, O_WRONLY | O_CREAT | O_TRUNC, + /* Use O_EXCL if tmp == 1, I suppose */ + if (tmp) + fd = open(realname, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | + S_IWOTH); + else + fd = open(realname, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); -- 2.39.5