lib/repo: Don't delete new tmpdir if it can't be locked
If a newly allocated tmpdir can't be locked, set initialized to FALSE so that glnx_tmpdir_cleanup doesn't delete it when new_tmpdir goes out of scope. Closes: #1346 Approved by: cgwalters
This commit is contained in:
parent
bf85f8d89e
commit
162edf71ed
|
|
@ -5004,7 +5004,16 @@ _ostree_repo_allocate_tmpdir (int tmpdir_dfd,
|
||||||
error))
|
error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (!did_lock)
|
if (!did_lock)
|
||||||
continue;
|
{
|
||||||
|
/* We raced and someone else already locked the newly created
|
||||||
|
* directory. Free the resources here and then mark it as
|
||||||
|
* uninitialized so glnx_tmpdir_cleanup doesn't delete the directory
|
||||||
|
* when new_tmpdir goes out of scope.
|
||||||
|
*/
|
||||||
|
glnx_tmpdir_unset (&new_tmpdir);
|
||||||
|
new_tmpdir.initialized = FALSE;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
g_debug ("Using new tmpdir %s", new_tmpdir.path);
|
g_debug ("Using new tmpdir %s", new_tmpdir.path);
|
||||||
ret_tmpdir = new_tmpdir; /* Transfer ownership */
|
ret_tmpdir = new_tmpdir; /* Transfer ownership */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue