Hi Wes,

rfc4314 seems to specifically disallow empty identifiers. Also, I think you patch would probably permit an identifier of "-".

The check is done after the "-" handling so it should take care of it.

BTW, I have a patch to this code that I'm currently holding, which introduces a leading "+" to identifiers. It's for the case of XFERing mailboxes with invalid ACLs, i.e., a leading "+" means permit canonicalization to fail. Speaking of canonicalization, I wonder that the canonicalization routines would allow empty IDs... looks like auth_krb5.c:mycanonifyid() probably wouldn't, and auth_unix.c:mycanonifyid() used to but now doesn't. Perhaps the problem is this:

https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/cyrus/lib/auth_unix.c.diff?r1=1.37;r2=1.38

Removing those lines allows canonicalization of zero length IDs. Can't be a good thing, even outside of ACLs.

Good catch. I'm wondering why that code in auth_unix.c was changed at all?
There must be a valid use case (?) to it.

How do we go from here? Once we agree on a patch(set),
I could open a bug report, if that helps any.

Cheers,
Thomas

Reply via email to