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.
This commit is contained in:
Oswald Buddenhagen 2011-06-02 19:41:03 +02:00
parent 07cb422cbb
commit e9407cc1f7

View File

@ -1350,9 +1350,17 @@ static int
prepare_box( char **buf, const imap_store_t *ctx ) prepare_box( char **buf, const imap_store_t *ctx )
{ {
const char *name = ctx->name; const char *name = ctx->name;
const char *pfx = ctx->prefix;
return prepare_name( buf, ctx, if (starts_with_upper( name, -1, "INBOX", 5 ) && (!name[5] || name[5] == '/')) {
(starts_with( name, -1, "INBOX", 5 ) && (!name[5] || name[5] == '/')) ? "" : ctx->prefix, name ); 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 static int