summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2014-04-17 09:16:46 +0100
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2014-04-17 09:16:46 +0100
commite9f4f44f129aedad37b8b441831406181fb91271 (patch)
tree96992a08b9d3a9539aab28d0e0dc599932c078ee
parent2d646b423b8b6394bcde5c680c685d1e09af1ee7 (diff)
downloadorc-e9f4f44f129aedad37b8b441831406181fb91271.tar.gz
orccodemem: mask group/other bits for temporary file
Ensures another user can't inject code into your process when winning a race with the ORC temp file code. Coverity 1147013
-rw-r--r--orc/orccodemem.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/orc/orccodemem.c b/orc/orccodemem.c
index b28a4ed..2c93f77 100644
--- a/orc/orccodemem.c
+++ b/orc/orccodemem.c
@@ -198,11 +198,14 @@ orc_code_region_allocate_codemem_dual_map (OrcCodeRegion *region,
int fd;
int n;
char *filename;
+ mode_t mask;
filename = malloc (strlen ("/orcexec..") +
strlen (dir) + 6 + 1);
sprintf(filename, "%s/orcexec.XXXXXX", dir);
+ mask = umask (0066);
fd = mkstemp (filename);
+ umask (mask);
if (fd == -1) {
ORC_WARNING ("failed to create temp file");
free (filename);