From: Timo Sirainen Date: Thu, 17 Jun 2004 23:52:50 +0000 (+0300) Subject: Fixed updating X-IMAPbase X-Git-Tag: 1.1.alpha1~3948 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d3aac5be07b96f72cf0551fac35ac74a4f07770;p=thirdparty%2Fdovecot%2Fcore.git Fixed updating X-IMAPbase --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/mbox/mbox-sync-update.c b/src/lib-storage/index/mbox/mbox-sync-update.c index b933da487b..909dc483e3 100644 --- a/src/lib-storage/index/mbox/mbox-sync-update.c +++ b/src/lib-storage/index/mbox/mbox-sync-update.c @@ -22,6 +22,8 @@ static void mbox_sync_move_buffer(struct mbox_sync_mail_context *ctx, ssize_t diff = (ssize_t)need - (ssize_t)have; int i; + i_assert(have < SSIZE_T_MAX); + if (diff == 0) { if (ctx->header_last_change < pos + have || ctx->header_last_change == (size_t)-1) @@ -226,7 +228,7 @@ static void mbox_sync_update_x_imap_base(struct mbox_sync_mail_context *ctx) //FIXME:keywords_append(ctx, all_keywords); str_append_c(str, '\n'); - hdr = str_c(ctx->header); + hdr = str_c(ctx->header) + pos; p = strchr(hdr, '\n'); if (p == NULL) { @@ -235,8 +237,7 @@ static void mbox_sync_update_x_imap_base(struct mbox_sync_mail_context *ctx) str_truncate(ctx->header, pos); str_append_str(ctx->header, str); } else { - mbox_sync_move_buffer(ctx, pos, str_len(str), - (p - hdr + 1) - pos); + mbox_sync_move_buffer(ctx, pos, str_len(str), p - hdr + 1); buffer_copy(ctx->header, pos, str, 0, (size_t)-1); }