summaryrefslogtreecommitdiff
path: root/futility/updater_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'futility/updater_utils.c')
-rw-r--r--futility/updater_utils.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/futility/updater_utils.c b/futility/updater_utils.c
index 6e2d358d..e87094b4 100644
--- a/futility/updater_utils.c
+++ b/futility/updater_utils.c
@@ -7,6 +7,8 @@
#include <assert.h>
#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
#include <unistd.h>
#include "2common.h"
@@ -697,8 +699,12 @@ const char *create_temp_file(struct tempfile *head)
struct tempfile *new_temp;
char new_path[] = P_tmpdir "/fwupdater.XXXXXX";
int fd;
+ mode_t umask_save;
+ /* Set the umask before mkstemp for security considerations. */
+ umask_save = umask(077);
fd = mkstemp(new_path);
+ umask(umask_save);
if (fd < 0) {
ERROR("Failed to create new temp file in %s\n", new_path);
return NULL;