Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7892:053d1aa325f6 HEAD
mail_index_update_header_ext(): Don't crash if size isn't 32bit aligned.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 18 Jun 2008 06:33:08 +0300 |
parents | 9cd7caa922d6 |
children | 9e4be86d4b7d |
files | src/lib-index/mail-transaction-log-append.c |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log-append.c Wed Jun 18 06:30:51 2008 +0300 +++ b/src/lib-index/mail-transaction-log-append.c Wed Jun 18 06:33:08 2008 +0300 @@ -294,12 +294,14 @@ 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); }