1 |
commit: 2a819a2ff765005b4e6dbda35f794443c27522ee |
2 |
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Jan 22 19:53:01 2020 +0000 |
4 |
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jan 22 19:53:01 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=2a819a2f |
7 |
|
8 |
qpkg: fix Coverity 125928 Insecure temporary file |
9 |
|
10 |
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> |
11 |
|
12 |
qpkg.c | 6 +++++- |
13 |
1 file changed, 5 insertions(+), 1 deletion(-) |
14 |
|
15 |
diff --git a/qpkg.c b/qpkg.c |
16 |
index 948d564..eaca37b 100644 |
17 |
--- a/qpkg.c |
18 |
+++ b/qpkg.c |
19 |
@@ -179,6 +179,7 @@ qpkg_make(depend_atom *atom) |
20 |
int i; |
21 |
char *xpak_argv[2]; |
22 |
struct stat st; |
23 |
+ mode_t mask; |
24 |
|
25 |
if (pretend) { |
26 |
printf(" %s-%s %s:\n", |
27 |
@@ -197,7 +198,10 @@ qpkg_make(depend_atom *atom) |
28 |
} |
29 |
|
30 |
snprintf(tmpdir, sizeof(tmpdir), "%s/qpkg.XXXXXX", qpkg_bindir); |
31 |
- if ((i = mkstemp(tmpdir)) == -1) { |
32 |
+ mask = umask(0077); |
33 |
+ i = mkstemp(tmpdir); |
34 |
+ umask(mask); |
35 |
+ if (i == -1) { |
36 |
fclose(fp); |
37 |
free(buf); |
38 |
return -2; |