From: Timo Sirainen Date: Wed, 18 Jun 2008 03:33:08 +0000 (+0300) Subject: mail_index_update_header_ext(): Don't crash if size isn't 32bit aligned. X-Git-Tag: 1.2.alpha1~269 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c584c749b2894edce2323b12fa24957744ff556a;p=thirdparty%2Fdovecot%2Fcore.git mail_index_update_header_ext(): Don't crash if size isn't 32bit aligned. --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-transaction-log-append.c b/src/lib-index/mail-transaction-log-append.c index ed4b965ba9..85c4d492a7 100644 --- a/src/lib-index/mail-transaction-log-append.c +++ b/src/lib-index/mail-transaction-log-append.c @@ -294,12 +294,14 @@ log_append_ext_hdr_update(struct log_append_context *ctx, buffer_t *buf; unsigned int hdr_size; - hdr_size = sizeof(*trans_hdr) + hdr->size; + hdr_size = sizeof(*trans_hdr) + hdr->size + 4; buf = buffer_create_static_hard(pool_datastack_create(), hdr_size); trans_hdr = buffer_append_space_unsafe(buf, sizeof(*trans_hdr)); trans_hdr->offset = hdr->offset; trans_hdr->size = hdr->size; buffer_append(buf, hdr + 1, hdr->size); + if (buf->used % 4 != 0) + buffer_append_zero(buf, 4 - buf->used % 4); log_append_buffer(ctx, buf, NULL, MAIL_TRANSACTION_EXT_HDR_UPDATE); }