]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Updated MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE() to not allow private...
authorTimo Sirainen <tss@iki.fi>
Mon, 7 Sep 2015 12:06:40 +0000 (15:06 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 7 Sep 2015 12:06:40 +0000 (15:06 +0300)
src/lib-storage/mailbox-attribute.h

index 23e893bc701bc8de7c38bb957d91a15e068609e5..86e1cfcff8185b31bb4c9d2c810327ab89278860 100644 (file)
@@ -20,12 +20,15 @@ struct mailbox_transaction_context;
 #define MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER \
        MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT"server/"
 
-/* User can get/set all non-pvt/ attributes and also pvt/server/ attributes. */
+/* User can get/set all non-pvt/ attributes and also pvt/server/
+   (but not pvt/server/pvt/) attributes. */
 #define MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE(key) \
        (strncmp(key, MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT, \
                 strlen(MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT)) != 0 || \
-        strncmp(key, MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER, \
-                strlen(MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER)) == 0)
+        (strncmp(key, MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER, \
+                strlen(MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER)) == 0 && \
+         strncmp(key, MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT, \
+                strlen(MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT)) != 0))
 
 enum mail_attribute_type {
        MAIL_ATTRIBUTE_TYPE_PRIVATE,