]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mkdir_parents(): Handle mkdir() EEXIST errors that may happen during race conditions.
authorTimo Sirainen <tss@iki.fi>
Mon, 5 May 2014 15:37:16 +0000 (18:37 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 5 May 2014 15:37:16 +0000 (18:37 +0300)
We don't care about EEXIST errors that happen when trying to mkdir() parent
directories, only if it happens when mkdir()ing the last directory.

src/lib/mkdir-parents.c

index 2a4dc204f659cbf19a5d07d1498bf6029efe097a..41997eb6ee6b1dea714d8d2dd72f380b78b912f5 100644 (file)
@@ -112,7 +112,7 @@ mkdir_parents_chown_full(const char *path, mode_t mode, uid_t uid, gid_t gid,
                                                       mode, uid,
                                                       gid, gid_origin);
                } T_END;
-               if (ret < 0)
+               if (ret < 0 && errno != EEXIST)
                        return -1;
 
                /* should work now */