diff options
Diffstat (limited to 'meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch')
-rw-r--r-- | meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch b/meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch deleted file mode 100644 index f483f3ad90..0000000000 --- a/meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | rpmdb: prevent race in tmpdir creation | ||
2 | |||
3 | If two (or more) instances of rpm are running at the same time they may | ||
4 | be trying to create the same (base-)temporary directory at the same time | ||
5 | which causes the other mkdir to fail with EEXIST. This patch prevents a | ||
6 | failure caused by this race by ignoring EEXIST error on directory | ||
7 | creation. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> | ||
12 | |||
13 | diff --git a/rpmdb/signature.c b/rpmdb/signature.c | ||
14 | index dce6c4e..100204b 100644 | ||
15 | --- a/rpmdb/signature.c | ||
16 | +++ b/rpmdb/signature.c | ||
17 | @@ -37,6 +37,7 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr) | ||
18 | int temput; | ||
19 | FD_t fd = NULL; | ||
20 | unsigned int ran; | ||
21 | + int ret = 0; | ||
22 | |||
23 | if (!prefix) prefix = ""; | ||
24 | |||
25 | @@ -44,8 +45,11 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr) | ||
26 | if (!_initialized) { | ||
27 | _initialized = 1; | ||
28 | tempfn = rpmGenPath(prefix, tpmacro, NULL); | ||
29 | - if (rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1)) | ||
30 | - goto errxit; | ||
31 | + ret = rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1); | ||
32 | + if (ret && ret != EEXIST) { | ||
33 | + rpmlog(RPMLOG_ERR, _("error creating temporary directory %s: %d\n"), tempfn, ret); | ||
34 | + goto errxit; | ||
35 | + } | ||
36 | } | ||
37 | |||
38 | /* XXX should probably use mkstemp here */ | ||
39 | -- | ||
40 | 2.6.6 | ||
41 | |||