dovecot-2.2: Avoid under/overflows in unsigned integer calculati...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Feb 24 11:58:58 EET 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/f74bf0521d69
changeset: 15909:f74bf0521d69
user: Timo Sirainen <tss at iki.fi>
date: Sun Feb 24 11:58:46 2013 +0200
description:
Avoid under/overflows in unsigned integer calculations.
diffstat:
src/lib/str-find.c | 10 +++++-----
src/lib/test-bsearch-insert-pos.c | 2 +-
src/lib/time-util.c | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
diffs (58 lines):
diff -r 573682b34a76 -r f74bf0521d69 src/lib/str-find.c
--- a/src/lib/str-find.c Sun Feb 24 11:55:07 2013 +0200
+++ b/src/lib/str-find.c Sun Feb 24 11:58:46 2013 +0200
@@ -37,7 +37,7 @@
suffixes[len_1] = ctx->key_len;
g = len_1;
- for (i = ctx->key_len - 2; i >= 0; i--) {
+ for (i = (int)ctx->key_len - 2; i >= 0; i--) {
if (i > g && (int)suffixes[i + len_1 - f] < i - g)
suffixes[i] = suffixes[i + len_1 - f];
else {
@@ -53,9 +53,8 @@
static void init_goodtab(struct str_find_context *ctx)
{
- unsigned int len_1 = ctx->key_len - 1;
- unsigned int j, *suffixes;
- int i;
+ unsigned int *suffixes;
+ int j, i, len_1 = ctx->key_len - 1;
suffixes = t_buffer_get(sizeof(*suffixes) * ctx->key_len);
init_suffixes(ctx, suffixes);
@@ -153,7 +152,8 @@
i--;
}
- bad_value = ctx->badtab[data[i + j]] + i + 1 - key_len;
+ bad_value = (int)(ctx->badtab[data[i + j]] + i + 1) -
+ (int)key_len;
j += I_MAX(ctx->goodtab[i], bad_value);
}
i_assert(j <= size);
diff -r 573682b34a76 -r f74bf0521d69 src/lib/test-bsearch-insert-pos.c
--- a/src/lib/test-bsearch-insert-pos.c Sun Feb 24 11:55:07 2013 +0200
+++ b/src/lib/test-bsearch-insert-pos.c Sun Feb 24 11:58:46 2013 +0200
@@ -5,7 +5,7 @@
static int cmp_uint(const unsigned int *i1, const unsigned int *i2)
{
- return *i1 - *i2;
+ return (int)*i1 - (int)*i2;
}
void test_bsearch_insert_pos(void)
diff -r 573682b34a76 -r f74bf0521d69 src/lib/time-util.c
--- a/src/lib/time-util.c Sun Feb 24 11:55:07 2013 +0200
+++ b/src/lib/time-util.c Sun Feb 24 11:58:46 2013 +0200
@@ -37,7 +37,7 @@
secs--;
usecs += 1000000;
}
- return ((long long)secs * 1000000ULL) + usecs;
+ return ((long long)secs * 1000000LL) + usecs;
}
const char *t_strflocaltime(const char *fmt, time_t t)
More information about the dovecot-cvs
mailing list