mirror of
git://git.sv.gnu.org/nano.git
synced 2024-11-27 15:19:38 +03:00
tweaks: elide another two calls of umask(), and rename two variables
This commit is contained in:
parent
a1bef0e953
commit
bd0026be86
19
src/files.c
19
src/files.c
@ -1347,7 +1347,7 @@ char *safe_tempfile(FILE **stream)
|
||||
{
|
||||
const char *env_dir = getenv("TMPDIR");
|
||||
char *tempdir = NULL, *tempfile_name = NULL;
|
||||
mode_t original_umask = 0;
|
||||
mode_t was_mask;
|
||||
int fd;
|
||||
|
||||
/* Get the absolute path for the first directory among $TMPDIR
|
||||
@ -1364,12 +1364,11 @@ char *safe_tempfile(FILE **stream)
|
||||
tempfile_name = charealloc(tempdir, strlen(tempdir) + 12);
|
||||
strcat(tempfile_name, "nano.XXXXXX");
|
||||
|
||||
original_umask = umask(0);
|
||||
umask(S_IRWXG | S_IRWXO);
|
||||
was_mask = umask(S_IRWXG | S_IRWXO);
|
||||
|
||||
fd = mkstemp(tempfile_name);
|
||||
|
||||
umask(original_umask);
|
||||
umask(was_mask);
|
||||
|
||||
if (fd == -1) {
|
||||
free(tempfile_name);
|
||||
@ -1505,14 +1504,14 @@ int copy_file(FILE *inn, FILE *out, bool close_out)
|
||||
bool write_file(const char *name, FILE *stream, bool tmp,
|
||||
kind_of_writing_type method, bool fullbuffer)
|
||||
{
|
||||
mode_t original_umask = 0;
|
||||
/* The umask from when nano started. */
|
||||
#ifndef NANO_TINY
|
||||
bool isactualfile = FALSE;
|
||||
/* Becomes TRUE when the file is non-temporary and exists. */
|
||||
#endif
|
||||
struct stat st;
|
||||
/* The status fields filled in by stat(). */
|
||||
mode_t was_mask = 0;
|
||||
/* Will be set to the umask from when nano was started. */
|
||||
char *realname;
|
||||
/* The filename after tilde expansion. */
|
||||
FILE *f = stream;
|
||||
@ -1709,10 +1708,8 @@ bool write_file(const char *name, FILE *stream, bool tmp,
|
||||
#endif /* !NANO_TINY */
|
||||
|
||||
/* When going to create an emergency file, don't let others access it. */
|
||||
if (stream == NULL && tmp) {
|
||||
original_umask = umask(0);
|
||||
umask(S_IRWXG | S_IRWXO);
|
||||
}
|
||||
if (stream == NULL && tmp)
|
||||
was_mask = umask(S_IRWXG | S_IRWXO);
|
||||
|
||||
#ifndef NANO_TINY
|
||||
/* When prepending, first copy the existing file to a temporary file. */
|
||||
@ -1772,7 +1769,7 @@ bool write_file(const char *name, FILE *stream, bool tmp,
|
||||
#endif
|
||||
/* When this is an emergency file, restore the original umask. */
|
||||
if (tmp)
|
||||
umask(original_umask);
|
||||
umask(was_mask);
|
||||
|
||||
/* If we couldn't open the file, give up. */
|
||||
if (fd == -1) {
|
||||
|
Loading…
Reference in New Issue
Block a user