From b879ed8dd4b5850987e6b89a92f794d87c6be7d7 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 5 Apr 2010 10:44:06 +0300 Subject: [PATCH] Small code changes to make static analyzer happier. --HG-- branch : HEAD --- src/config/config-request.c | 14 ++++++++++---- src/lib-index/mail-cache-compress.c | 3 ++- src/lib-index/mailbox-list-index-sync.c | 1 + src/lib-index/test-mail-transaction-log-view.c | 3 ++- src/lib-mail/test-message-id.c | 7 +++++-- src/lib-storage/mail-storage-service.c | 5 ++++- src/lib/test-istream-crlf.c | 2 +- 7 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/config/config-request.c b/src/config/config-request.c index c650d4cffb..dbce8be434 100644 --- a/src/config/config-request.c +++ b/src/config/config-request.c @@ -100,13 +100,19 @@ bool config_export_type(string_t *str, const void *value, } case SET_ENUM: { const char *const *val = value; - const char *const *_dval = default_value; - const char *dval = _dval == NULL ? NULL : *_dval; unsigned int len = strlen(*val); - if (dump_default || strncmp(*val, dval, len) != 0 || - ((*val)[len] != ':' && (*val)[len] != '\0')) + if (dump_default) str_append(str, *val); + else { + const char *const *_dval = default_value; + const char *dval = _dval == NULL ? NULL : *_dval; + + i_assert(dval != NULL); + if (strncmp(*val, dval, len) != 0 || + ((*val)[len] != ':' && (*val)[len] != '\0')) + str_append(str, *val); + } break; } default: diff --git a/src/lib-index/mail-cache-compress.c b/src/lib-index/mail-cache-compress.c index 05414314b2..35129b41a9 100644 --- a/src/lib-index/mail-cache-compress.c +++ b/src/lib-index/mail-cache-compress.c @@ -131,6 +131,7 @@ mail_cache_compress_get_fields(struct mail_cache_copy_context *ctx, idx = cache->field_file_map[i]; if (idx != (uint32_t)-1) { i_assert(idx < used_fields_count && + cache->file_field_map != NULL && cache->file_field_map[idx] == 0); cache->file_field_map[idx] = i; j++; @@ -182,7 +183,7 @@ mail_cache_copy(struct mail_cache *cache, struct mail_index_transaction *trans, ctx.buffer = buffer_create_dynamic(default_pool, 4096); ctx.field_seen = buffer_create_dynamic(default_pool, 64); ctx.field_seen_value = 0; - ctx.field_file_map = t_new(uint32_t, cache->fields_count); + ctx.field_file_map = t_new(uint32_t, cache->fields_count + 1); t_array_init(&ctx.bitmask_pos, 32); /* @UNSAFE: drop unused fields and create a field mapping for diff --git a/src/lib-index/mailbox-list-index-sync.c b/src/lib-index/mailbox-list-index-sync.c index 4cb88bcf77..d09672e7cb 100644 --- a/src/lib-index/mailbox-list-index-sync.c +++ b/src/lib-index/mailbox-list-index-sync.c @@ -615,6 +615,7 @@ mailbox_list_index_sync_recreate_dir(struct mailbox_list_index_sync_ctx *ctx, name_pos += size; } else { /* existing record. need to find its name_offset */ + i_assert(dir != NULL); for (orig = 0; orig < dir->count; orig++) { if (recs[orig].uid == sync_recs[src].uid) break; diff --git a/src/lib-index/test-mail-transaction-log-view.c b/src/lib-index/test-mail-transaction-log-view.c index 91b0e56bff..2bfb45cc4a 100644 --- a/src/lib-index/test-mail-transaction-log-view.c +++ b/src/lib-index/test-mail-transaction-log-view.c @@ -139,7 +139,8 @@ static void test_mail_transaction_log_view(void) add_append_record(log->head, &append_rec); view = mail_transaction_log_view_open(log); - test_assert(view != NULL && log->views == view && + i_assert(view != NULL); + test_assert(log->views == view && !view_is_file_refed(1) && !view_is_file_refed(2) && view_is_file_refed(3)); test_end(); diff --git a/src/lib-mail/test-message-id.c b/src/lib-mail/test-message-id.c index 2b7b52ff88..799ea3be94 100644 --- a/src/lib-mail/test-message-id.c +++ b/src/lib-mail/test-message-id.c @@ -22,9 +22,12 @@ static void test_message_id_get_next(void) test_begin("message id parser"); for (i = 0, j = 0; i < N_ELEMENTS(input); i++) { msgid = input[i]; - while ((next_msgid = message_id_get_next(&msgid)) != NULL) + while ((next_msgid = message_id_get_next(&msgid)) != NULL) { + if (output[j] == NULL) + break; test_assert(strcmp(output[j++], next_msgid) == 0); - test_assert(output[j++] == NULL); + } + test_assert(output[j++] == NULL && next_msgid == NULL); } test_assert(j == N_ELEMENTS(output)); test_end(); diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index 407256e765..721daa449c 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -569,7 +569,10 @@ mail_storage_service_init(struct master_service *service, ctx->set_roots = p_new(pool, const struct setting_parser_info *, count + 2); ctx->set_roots[0] = &mail_user_setting_parser_info; - memcpy(ctx->set_roots + 1, set_roots, sizeof(*ctx->set_roots) * count); + if (set_roots != NULL) { + memcpy(ctx->set_roots + 1, set_roots, + sizeof(*ctx->set_roots) * count); + } /* do all the global initialization. delay initializing plugins until we drop privileges the first time. */ diff --git a/src/lib/test-istream-crlf.c b/src/lib/test-istream-crlf.c index aa8f2e5a33..ad13038755 100644 --- a/src/lib/test-istream-crlf.c +++ b/src/lib/test-istream-crlf.c @@ -9,7 +9,7 @@ static void test_istream_crlf_input(const char *input) { string_t *output; const unsigned char *data; - size_t size; + size_t size = 0; ssize_t ret1, ret2; unsigned int i, j, pos, input_len = strlen(input); struct istream *istream, *crlf_istream; -- 2.47.3