From: Aki Tuomi Date: Tue, 1 Sep 2020 06:44:04 +0000 (+0300) Subject: global: Add explicit casts where needed X-Git-Tag: 2.3.13~75 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=48b2c8cfaf39c3aa1e55c63cb57b12adda2456ab;p=thirdparty%2Fdovecot%2Fcore.git global: Add explicit casts where needed Squash implicit conversion complains from sanitizer. --- diff --git a/src/auth/crypt-blowfish.c b/src/auth/crypt-blowfish.c index ee94317969..afb2841b07 100644 --- a/src/auth/crypt-blowfish.c +++ b/src/auth/crypt-blowfish.c @@ -587,7 +587,7 @@ static void BF_set_key(const char *key, BF_key expanded, BF_key initial, tmp[0] <<= 8; tmp[0] |= (unsigned char)*ptr; /* correct */ tmp[1] <<= 8; - tmp[1] |= (BF_word_signed)(signed char)*ptr; /* bug */ + tmp[1] |= (BF_word)(signed char)*ptr; /* bug */ /* * Sign extension in the first char has no effect - nothing to overwrite yet, * and those extra 24 bits will be fully shifted out of the 32-bit word. For diff --git a/src/lib-index/mail-index-sync-keywords.c b/src/lib-index/mail-index-sync-keywords.c index a93fc55275..51e181beae 100644 --- a/src/lib-index/mail-index-sync-keywords.c +++ b/src/lib-index/mail-index-sync-keywords.c @@ -236,7 +236,7 @@ keywords_update_records(struct mail_index_sync_map_ctx *ctx, } break; case MODIFY_REMOVE: - data_mask = ~data_mask; + data_mask = (unsigned char)~data_mask; for (; seq1 <= seq2; seq1++) { rec = MAIL_INDEX_REC_AT_SEQ(view->map, seq1); data = PTR_OFFSET(rec, data_offset); diff --git a/src/lib-index/mail-index-sync-update.c b/src/lib-index/mail-index-sync-update.c index 007cfb4bb6..7704a4c5b3 100644 --- a/src/lib-index/mail-index-sync-update.c +++ b/src/lib-index/mail-index-sync-update.c @@ -448,7 +448,7 @@ static int sync_flag_update(const struct mail_transaction_flag_update *u, (view->index->flags & MAIL_INDEX_OPEN_FLAG_NO_DIRTY) == 0) view->map->hdr.flags |= MAIL_INDEX_HDR_FLAG_HAVE_DIRTY; - flag_mask = ~u->remove_flags; + flag_mask = (unsigned char)~u->remove_flags; if (((u->add_flags | u->remove_flags) & (MAIL_SEEN | MAIL_DELETED)) == 0) { diff --git a/src/lib-lua/dlua-dovecot.c b/src/lib-lua/dlua-dovecot.c index 4364d018b4..f8302a2ef3 100644 --- a/src/lib-lua/dlua-dovecot.c +++ b/src/lib-lua/dlua-dovecot.c @@ -598,7 +598,7 @@ static int dlua_clear_flag(lua_State *L) lua_Integer value = luaL_checkinteger(script->L, 1); lua_Integer flag = luaL_checkinteger(script->L, 2); - lua_pushinteger(script->L, value & (~flag)); + lua_pushinteger(script->L, value & (lua_Integer)~flag); return 1; } diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c index 899dd2e8a9..1dfcde0ef2 100644 --- a/src/lib-master/master-service.c +++ b/src/lib-master/master-service.c @@ -1284,7 +1284,7 @@ master_status_send(struct master_service *service, bool important_update) ret = write(MASTER_STATUS_FD, &service->master_status, sizeof(service->master_status)); - if (ret == sizeof(service->master_status)) { + if (ret == (ssize_t)sizeof(service->master_status)) { /* success */ io_remove(&service->io_status_write); service->last_sent_status_time = ioloop_time; diff --git a/src/lib-storage/index/mbox/mbox-sync-rewrite.c b/src/lib-storage/index/mbox/mbox-sync-rewrite.c index 78180eb1b9..96b0100480 100644 --- a/src/lib-storage/index/mbox/mbox-sync-rewrite.c +++ b/src/lib-storage/index/mbox/mbox-sync-rewrite.c @@ -309,7 +309,7 @@ int mbox_sync_try_rewrite(struct mbox_sync_mail_context *ctx, off_t move_diff) if (pwrite_full(sync_ctx->write_fd, str_data(ctx->header) + ctx->header_first_change, str_len(ctx->header) - ctx->header_first_change, - ctx->hdr_offset + ctx->header_first_change + + (off_t)ctx->hdr_offset + (off_t)ctx->header_first_change + move_diff) < 0) { mbox_set_syscall_error(sync_ctx->mbox, "pwrite_full()"); return -1; @@ -319,7 +319,7 @@ int mbox_sync_try_rewrite(struct mbox_sync_mail_context *ctx, off_t move_diff) (ctx->imapbase_updated || ctx->sync_ctx->base_uid_last != 0)) { /* the position might have moved as a result of moving whitespace */ - mbox_sync_first_mail_written(ctx, ctx->hdr_offset + move_diff); + mbox_sync_first_mail_written(ctx, (off_t)ctx->hdr_offset + move_diff); } mbox_sync_file_updated(sync_ctx, FALSE); @@ -540,8 +540,8 @@ int mbox_sync_rewrite(struct mbox_sync_context *sync_ctx, /* give the rest of the extra space to first mail. we might also have to move the mail backwards to fill the expunged space */ - padding_per_mail = move_diff + expunged_space + - mails[idx].space; + padding_per_mail = move_diff + (off_t)expunged_space + + (off_t)mails[idx].space; } next_end_offset = mails[idx].offset; diff --git a/src/lib-storage/index/mbox/mbox-sync-update.c b/src/lib-storage/index/mbox/mbox-sync-update.c index 762c5244fa..8442013f84 100644 --- a/src/lib-storage/index/mbox/mbox-sync-update.c +++ b/src/lib-storage/index/mbox/mbox-sync-update.c @@ -47,7 +47,7 @@ void mbox_sync_move_buffer(struct mbox_sync_mail_context *ctx, for (i = 0; i < MBOX_HDR_COUNT; i++) { if (ctx->hdr_pos[i] > pos && ctx->hdr_pos[i] != SIZE_MAX) - ctx->hdr_pos[i] += diff; + ctx->hdr_pos[i] = (ssize_t)ctx->hdr_pos[i] + diff; } if (ctx->mail.space > 0) { @@ -56,7 +56,7 @@ void mbox_sync_move_buffer(struct mbox_sync_mail_context *ctx, ctx->mail.offset > ctx->hdr_offset + pos + have); if (ctx->mail.offset > ctx->hdr_offset + pos) { /* free space offset moves */ - ctx->mail.offset += diff; + ctx->mail.offset = (ssize_t)ctx->mail.offset + diff; } } diff --git a/src/lib-storage/index/mbox/mbox-sync.c b/src/lib-storage/index/mbox/mbox-sync.c index 5e09e8ba06..8bfab6fb8a 100644 --- a/src/lib-storage/index/mbox/mbox-sync.c +++ b/src/lib-storage/index/mbox/mbox-sync.c @@ -661,8 +661,8 @@ static int mbox_sync_handle_header(struct mbox_sync_mail_context *mail_ctx) /* read the From-line before rewriting overwrites it */ if (mbox_read_from_line(mail_ctx) < 0) return -1; - i_assert(mail_ctx->mail.from_offset + move_diff != 1 && - mail_ctx->mail.from_offset + move_diff != 2); + i_assert((off_t)mail_ctx->mail.from_offset + move_diff != 1 && + (off_t)mail_ctx->mail.from_offset + move_diff != 2); mbox_sync_update_header(mail_ctx); ret = mbox_sync_try_rewrite(mail_ctx, move_diff); @@ -674,8 +674,8 @@ static int mbox_sync_handle_header(struct mbox_sync_mail_context *mail_ctx) new location */ i_assert((off_t)mail_ctx->mail.from_offset >= -move_diff); - mail_ctx->mail.from_offset += move_diff; - mail_ctx->mail.offset += move_diff; + mail_ctx->mail.from_offset = (off_t)mail_ctx->mail.from_offset + move_diff; + mail_ctx->mail.offset = (off_t)mail_ctx->mail.offset + move_diff; if (mbox_write_from_line(mail_ctx) < 0) return -1; } else { diff --git a/src/lib/test-array.c b/src/lib/test-array.c index 1650e734df..75739114b4 100644 --- a/src/lib/test-array.c +++ b/src/lib/test-array.c @@ -263,7 +263,7 @@ static void test_array_cmp_str(void) char buf[12]; const char *bufp = buf; memcpy(buf, ostr, olen+1); - buf[rc] = i_rand_limit(CHAR_MAX + 1 - CHAR_MIN) + CHAR_MIN; + buf[rc] = (int32_t)i_rand_limit(CHAR_MAX + 1 - CHAR_MIN) + CHAR_MIN; if(rc == olen) buf[rc+1] = '\0'; array_idx_set(&arr2, j, &bufp); diff --git a/src/lib/test-failures.c b/src/lib/test-failures.c index c80aee0c8e..c76d5b8c10 100644 --- a/src/lib/test-failures.c +++ b/src/lib/test-failures.c @@ -75,7 +75,7 @@ internal_line_match(const char *line, const char *prefix, const char *text) if (line[0] != '\001') return FALSE; - uint8_t type = line[1]; + uint8_t type = (uint8_t)line[1]; if (type != ((LOG_TYPE_DEBUG+1) | 0x80)) return FALSE; line += 2; diff --git a/src/lib/test-unichar.c b/src/lib/test-unichar.c index 0137221d49..b5d3d06d51 100644 --- a/src/lib/test-unichar.c +++ b/src/lib/test-unichar.c @@ -149,13 +149,13 @@ void test_unichar(void) test_assert(chr2 == chr); if ((chr & 0x63) == 0) { - unsigned int utf8len = uni_utf8_char_bytes(*str_c(str)); + unsigned int utf8len = uni_utf8_char_bytes((unsigned char)*str_c(str)); /* virtually truncate the byte string */ while (--utf8len > 0) test_assert(uni_utf8_get_char_n(str_c(str), utf8len, &chr2) == 0); - utf8len = uni_utf8_char_bytes(*str_c(str)); + utf8len = uni_utf8_char_bytes((unsigned char)*str_c(str)); /* actually truncate the byte stream */ while (--utf8len > 0) {