Mercurial > dovecot > core-2.2
changeset 12698:c75a13e5b678
mkdir_*chown/chgrp(): If chown() fails, rmdir() the directory.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 16 Jan 2011 21:15:10 +0200 |
parents | 113b54dcb950 |
children | 9d111f5b22e2 |
files | src/lib/mkdir-parents.c |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/mkdir-parents.c Sun Jan 16 18:53:27 2011 +0200 +++ b/src/lib/mkdir-parents.c Sun Jan 16 21:15:10 2011 +0200 @@ -33,12 +33,16 @@ return -1; } if (chown(path, uid, gid) < 0) { + orig_errno = errno; + if (rmdir(path) < 0) + i_error("rmdir(%s) failed: %m", path); + errno = orig_errno; + if (errno == EPERM && uid == (uid_t)-1) { i_error("%s", eperm_error_get_chgrp("chown", path, gid, gid_origin)); return -1; } - orig_errno = errno; str = t_str_new(256); str_printfa(str, "chown(%s, %ld", path,