mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
Merge branch '3025_race_cond_reate_tmp_dir'
* 3025_race_cond_reate_tmp_dir: Ticket #3025: race condition when creating temporary directory.
This commit is contained in:
commit
47b122d9a5
@ -840,7 +840,10 @@ mc_tmpdir (void)
|
|||||||
|
|
||||||
canonicalize_pathname (buffer);
|
canonicalize_pathname (buffer);
|
||||||
|
|
||||||
if (lstat (buffer, &st) == 0)
|
/* Try to create directory */
|
||||||
|
if (mkdir (buffer, S_IRWXU) != 0)
|
||||||
|
{
|
||||||
|
if (errno == EEXIST && lstat (buffer, &st) == 0)
|
||||||
{
|
{
|
||||||
/* Sanity check for existing directory */
|
/* Sanity check for existing directory */
|
||||||
if (!S_ISDIR (st.st_mode))
|
if (!S_ISDIR (st.st_mode))
|
||||||
@ -851,9 +854,6 @@ mc_tmpdir (void)
|
|||||||
error = _("Cannot set correct permissions for directory %s\n");
|
error = _("Cannot set correct permissions for directory %s\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
/* Need to create directory */
|
|
||||||
if (mkdir (buffer, S_IRWXU) != 0)
|
|
||||||
{
|
{
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("Cannot create temporary directory %s: %s\n"),
|
_("Cannot create temporary directory %s: %s\n"),
|
||||||
|
Loading…
Reference in New Issue
Block a user