Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6997:0008fb28e62b HEAD
T_FRAME() changes caused infinite looping.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 18 Dec 2007 13:46:33 +0200 |
parents | 021b6900a900 |
children | 0375f2c0a1f6 |
files | src/plugins/acl/acl-backend-vfile.c |
diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/acl/acl-backend-vfile.c Mon Dec 17 17:32:26 2007 +0200 +++ b/src/plugins/acl/acl-backend-vfile.c Tue Dec 18 13:46:33 2007 +0200 @@ -292,7 +292,7 @@ struct stat st; const char *line; unsigned int linenum; - int fd, ret = 1; + int fd, ret = 0; *is_dir_r = FALSE; @@ -360,24 +360,25 @@ break; } - if (input->stream_errno != 0) { + if (ret < 0) { + /* parsing failure */ + } else if (input->stream_errno != 0) { if (input->stream_errno == ESTALE && try_retry) ret = 0; else { ret = -1; i_error("read(%s) failed: %m", path); } - } - - if (ret > 0) { + } else { if (fstat(fd, &st) < 0) { if (errno == ESTALE && try_retry) ret = 0; else { ret = -1; - i_error("read(%s) failed: %m", path); + i_error("fstat(%s) failed: %m", path); } } else { + ret = 1; validity->last_read_time = ioloop_time; validity->last_mtime = st.st_mtime; validity->last_size = st.st_size;