From b8e64a5ee0f4664ac8c678b2635d4c94e9a810e2 Mon Sep 17 00:00:00 2001 From: Laurent MONIN Date: Tue, 10 Jan 2006 23:49:35 +0100 Subject: [PATCH] Simplify secure_open() call, make it a wrapper around secure_open_umask(). --- src/bfu/inphist.c | 2 +- src/bookmarks/backend/common.c | 2 +- src/config/conf.c | 2 +- src/cookies/cookies.c | 2 +- src/formhist/formhist.c | 2 +- src/globhist/globhist.c | 2 +- src/util/secsave.c | 9 +++++++-- src/util/secsave.h | 3 ++- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/bfu/inphist.c b/src/bfu/inphist.c index 94ae9316..dbf5e76a 100644 --- a/src/bfu/inphist.c +++ b/src/bfu/inphist.c @@ -321,7 +321,7 @@ save_input_history(struct input_history *history, unsigned char *filename) history_file = straconcat(elinks_home, filename, NULL); if (!history_file) return -1; - ssi = secure_open(history_file, S_IXUSR | S_IRWXG | S_IRWXO); + ssi = secure_open(history_file); mem_free(history_file); if (!ssi) return -1; diff --git a/src/bookmarks/backend/common.c b/src/bookmarks/backend/common.c index 8b26e79f..6fde110c 100644 --- a/src/bookmarks/backend/common.c +++ b/src/bookmarks/backend/common.c @@ -94,7 +94,7 @@ bookmarks_write(struct list_head *bookmarks_list) file_name = straconcat(elinks_home, file_name, NULL); if (!file_name) return; - ssi = secure_open(file_name, S_IXUSR | S_IRWXG | S_IRWXO); + ssi = secure_open(file_name); mem_free(file_name); if (!ssi) return; diff --git a/src/config/conf.c b/src/config/conf.c index 8e23fa54..b0ce8561 100644 --- a/src/config/conf.c +++ b/src/config/conf.c @@ -805,7 +805,7 @@ write_config_file(unsigned char *prefix, unsigned char *name, config_file = straconcat(prefix, slash, name, NULL); if (!config_file) goto free_cfg_str; - ssi = secure_open(config_file, S_IXUSR | S_IRWXG | S_IRWXO); + ssi = secure_open(config_file); if (ssi) { secure_fputs(ssi, cfg_str); ret = secure_close(ssi); diff --git a/src/cookies/cookies.c b/src/cookies/cookies.c index ebb93d93..274c387e 100644 --- a/src/cookies/cookies.c +++ b/src/cookies/cookies.c @@ -775,7 +775,7 @@ save_cookies(void) { cookfile = straconcat(elinks_home, COOKIES_FILENAME, NULL); if (!cookfile) return; - ssi = secure_open(cookfile, S_IXUSR | S_IRWXG | S_IRWXO); + ssi = secure_open(cookfile); mem_free(cookfile); if (!ssi) return; diff --git a/src/formhist/formhist.c b/src/formhist/formhist.c index 0e7d6e2f..d5f5eca8 100644 --- a/src/formhist/formhist.c +++ b/src/formhist/formhist.c @@ -225,7 +225,7 @@ save_formhist_to_file(void) file = straconcat(elinks_home, FORMS_HISTORY_FILENAME, NULL); if (!file) return 0; - ssi = secure_open(file, S_IXUSR | S_IRWXG | S_IRWXO); + ssi = secure_open(file); mem_free(file); if (!ssi) return 0; diff --git a/src/globhist/globhist.c b/src/globhist/globhist.c index 3e9898e6..39127c83 100644 --- a/src/globhist/globhist.c +++ b/src/globhist/globhist.c @@ -369,7 +369,7 @@ write_global_history(void) file_name = straconcat(elinks_home, GLOBAL_HISTORY_FILENAME, NULL); if (!file_name) return; - ssi = secure_open(file_name, S_IXUSR | S_IRWXG | S_IRWXO); + ssi = secure_open(file_name); mem_free(file_name); if (!ssi) return; diff --git a/src/util/secsave.c b/src/util/secsave.c index 51aa5c96..448d5e74 100644 --- a/src/util/secsave.c +++ b/src/util/secsave.c @@ -68,8 +68,8 @@ enum secsave_errno secsave_errno = SS_ERR_NONE; /* Open a file for writing in a secure way. It returns a pointer to a structure * secure_save_info on success, or NULL on failure. */ -struct secure_save_info * -secure_open(unsigned char *file_name, mode_t mask) +static struct secure_save_info * +secure_open_umask(unsigned char *file_name, mode_t mask) { mode_t saved_mask; struct stat st; @@ -203,6 +203,11 @@ end: return NULL; } +struct secure_save_info * +secure_open(unsigned char *file_name) +{ + return secure_open_umask(file_name, S_IXUSR | S_IRWXG | S_IRWXO); +} /* Close a file opened with secure_open, and return 0 on success, errno * or -1 on failure. */ diff --git a/src/util/secsave.h b/src/util/secsave.h index cd2a6d09..001c1460 100644 --- a/src/util/secsave.h +++ b/src/util/secsave.h @@ -31,7 +31,8 @@ struct secure_save_info { int secure_save; /* use secure save for this file */ }; -struct secure_save_info *secure_open(unsigned char *, mode_t); +struct secure_save_info *secure_open(unsigned char *); + int secure_close(struct secure_save_info *); int secure_fputs(struct secure_save_info *, const char *);