Mercurial > dovecot > original-hg > dovecot-1.2
diff src/lib-storage/index/maildir/maildir-sync.c @ 5911:8bb5c7a69405 HEAD
If readdir() or closedir() fails, return failure.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 08 Jul 2007 22:16:04 +0300 |
parents | 289f828591f7 |
children | 53abd603e04b |
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-sync.c Sun Jul 08 22:13:53 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-sync.c Sun Jul 08 22:16:04 2007 +0300 @@ -643,7 +643,9 @@ ctx->move_count = 0; move_new = new_dir && !mailbox_is_readonly(&ctx->mbox->ibox.box) && !ctx->mbox->ibox.keep_recent; - while ((dp = readdir(dirp)) != NULL) { + + errno = 0; + for (; (dp = readdir(dirp)) != NULL; errno = 0) { if (dp->d_name[0] == '.') continue; @@ -715,9 +717,16 @@ } } + if (errno != 0) { + mail_storage_set_critical(storage, + "readdir(%s) failed: %m", dir); + ret = -1; + } + if (closedir(dirp) < 0) { mail_storage_set_critical(storage, "closedir(%s) failed: %m", dir); + ret = -1; } t_pop();