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:
1 parent
bf85f8d89e
commit
162edf71ed
1 file changed
+10
-1
@@ -5004,7 +5004,16 @@ _ostree_repo_allocate_tmpdir (int tmpdir_dfd,
|
||||
error))
|
||||
return FALSE;
|
||||
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);
|
||||
ret_tmpdir = new_tmpdir; /* Transfer ownership */
|
||||
|
||||
Reference in new issue
Block a user