From: Timo Sirainen Date: Sun, 24 Feb 2013 13:00:13 +0000 (+0200) Subject: Avoid unsigned integer overflows. X-Git-Tag: 2.2.rc1~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81152dfa8dcc092882d09676df71fa95e85ecbd9;p=thirdparty%2Fdovecot%2Fcore.git Avoid unsigned integer overflows. --- diff --git a/src/imap/imap-commands-util.c b/src/imap/imap-commands-util.c index c389d6e9dd..5f4ef3ebfb 100644 --- a/src/imap/imap-commands-util.c +++ b/src/imap/imap-commands-util.c @@ -326,7 +326,9 @@ void msgset_generator_init(struct msgset_generator_context *ctx, string_t *str) void msgset_generator_next(struct msgset_generator_context *ctx, uint32_t uid) { - if (uid != ctx->last_uid+1) { + i_assert(uid > 0); + + if (uid-1 != ctx->last_uid) { if (ctx->first_uid == 0) ; else if (ctx->first_uid == ctx->last_uid) diff --git a/src/lib-index/mail-index-util.c b/src/lib-index/mail-index-util.c index f34b7dc3b6..5ba94a0d66 100644 --- a/src/lib-index/mail-index-util.c +++ b/src/lib-index/mail-index-util.c @@ -106,7 +106,7 @@ int mail_index_unpack_num(const uint8_t **p, const uint8_t *end, static int mail_index_seq_record_cmp(const uint32_t *key_seq, const uint32_t *data_seq) { - return *key_seq - *data_seq; + return (int)*key_seq - (int)*data_seq; } bool mail_index_seq_array_lookup(const ARRAY_TYPE(seq_array) *array,