Gitweb:
http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=fee28529...
Commit: fee2852960b318e79ee41849b180bfd7f297d446
Parent: e8fdcc705d2ac36b5151072fc2acef15d0b32ad2
Author: Andrew Price <anprice(a)redhat.com>
AuthorDate: Thu Sep 18 14:51:41 2014 +0100
Committer: Andrew Price <anprice(a)redhat.com>
CommitterDate: Wed Apr 1 16:51:34 2015 +0100
gfs2_edit: Set umask before calling mkstemp in savemetaopen()
Spotted by coverity: Calling "mkstemp(char *)" without securely setting
umask first.
Signed-off-by: Andrew Price <anprice(a)redhat.com>
---
gfs2/edit/savemeta.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index 360b144..5147ee5 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -259,6 +259,7 @@ static struct metafd savemetaopen(char *out_fn, int gziplevel)
struct metafd mfd = {-1, NULL, NULL, gziplevel};
char gzmode[3] = "w9";
char dft_fn[] = DFT_SAVE_FILE;
+ mode_t mask = umask(S_IXUSR | S_IRWXG | S_IRWXO);
if (!out_fn) {
out_fn = dft_fn;
@@ -266,6 +267,7 @@ static struct metafd savemetaopen(char *out_fn, int gziplevel)
} else {
mfd.fd = open(out_fn, O_RDWR | O_CREAT, 0644);
}
+ umask(mask);
mfd.filename = out_fn;
if (mfd.fd < 0) {