Thomas Glanzmann [off-list ref] writes:
I believe you still have a race condition if ...
- if (len > state->base_dir_len && state->force && !unlink(buf) && !mkdir(buf, 0777))
- continue;
... buf exists here as a file ...
if (!stat(buf, &st) && S_ISDIR(st.st_mode))
continue; /* ok */
... and became a directory here.
+ if (len > state->base_dir_len && state->force && !unlink(buf) && !mkdir(buf, 0777))
+ continue;
But that's quite unlikely to happen. And I have no fix to propose.
--
Matthieu