commit e9407cc1f724315daa47d617a0ebbd36a2415129
parent 07cb422cbb552744ac7cd13507fa4933de98ab15
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date: Thu, 2 Jun 2011 19:41:03 +0200
IMAP: reject unqualified non-uppercased INBOX spellings
otherwise the server would interpret it as INBOX contrary to our
expectations, which might lead to moderately surprising effects.
if you really want to sync your ~/maildir/inbox to the IMAP INBOX,
specify it as the Maildir Store's Inbox.
Diffstat:
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/drv_imap.c b/src/drv_imap.c
@@ -1350,9 +1350,17 @@ static int
prepare_box( char **buf, const imap_store_t *ctx )
{
const char *name = ctx->name;
+ const char *pfx = ctx->prefix;
- return prepare_name( buf, ctx,
- (starts_with( name, -1, "INBOX", 5 ) && (!name[5] || name[5] == '/')) ? "" : ctx->prefix, name );
+ if (starts_with_upper( name, -1, "INBOX", 5 ) && (!name[5] || name[5] == '/')) {
+ if (!memcmp( name, "INBOX", 5 )) {
+ pfx = "";
+ } else if (!*pfx) {
+ error( "IMAP error: cannot use unqualified '%s'. Did you mean INBOX?", name );
+ return -1;
+ }
+ }
+ return prepare_name( buf, ctx, pfx, name );
}
static int