From: Markus Valentin Date: Fri, 2 Aug 2019 13:57:09 +0000 (+0200) Subject: lib-imap-metadata: setting metadata literal value does not delete it X-Git-Tag: 2.3.9~336 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=be1bd417de556e66090ec47dac8be2a2b24e7089;p=thirdparty%2Fdovecot%2Fcore.git lib-imap-metadata: setting metadata literal value does not delete it Only if value and value_stream are NULL the metadata can be unset. --- diff --git a/src/lib-imap-storage/imap-metadata.c b/src/lib-imap-storage/imap-metadata.c index 260684877d..03d5b571a7 100644 --- a/src/lib-imap-storage/imap-metadata.c +++ b/src/lib-imap-storage/imap-metadata.c @@ -143,7 +143,7 @@ int imap_metadata_set(struct imap_metadata_transaction *imtrans, if (imap_metadata_get_mailbox_transaction(imtrans) < 0) return -1; - return (value->value == NULL ? + return (value->value == NULL && value->value_stream == NULL ? mailbox_attribute_unset(imtrans->trans, type, key) : mailbox_attribute_set(imtrans->trans, type, key, value)); }