Index: src/global/mail_queue.c =================================================================== --- src/global/mail_queue.c.orig +++ src/global/mail_queue.c @@ -363,6 +363,14 @@ VSTREAM *mail_queue_enter(const char *qu break; if (errno == EEXIST || errno == EISDIR) continue; + /* + * Avoid getting into an infinite loop when we don't have permission to + * read temp_path + */ + if (errno == EACCES) { + msg_fatal("%s: create file %s: no permission", myname, STR(temp_path)); + break; + } msg_warn("%s: create file %s: %m", myname, STR(temp_path)); sleep(10); }