I wasn't sure if this was a suitable item to send-pr, so I didn't.
Anyway... problem: I have cyrus IMAP server (v1.4) and FreeBSD
2.1.5-RELEASE. I had to make minor modifications in order to make
imapd work under FreeBSD. Biggest single problem? Apparently, under
FreeBSD, you get encrypted password info only if your euid is 0.
But... cyrus imapd *insists* on having a non-zero euid.
Temporary workaround/terrible hack: make imapd suid root, and then
immediately put a setreuid(<cyrus user uid>); and doing this later on:
setreuid(0);
getpwnam();
setreuid(<cyrus user uid>);
in order to get the encrypted password information.
I'm sure there's a better way to do this, implementation-wise. Any
suggestions? Would be glad to summarize solution.
Once I have this fixed, I'll submit a formal patch to the cyrus group.
-Dan Foster