]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Small code changes to make static analyzer happier.
authorTimo Sirainen <tss@iki.fi>
Mon, 5 Apr 2010 07:44:06 +0000 (10:44 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 5 Apr 2010 07:44:06 +0000 (10:44 +0300)
--HG--
branch : HEAD

src/config/config-request.c
src/lib-index/mail-cache-compress.c
src/lib-index/mailbox-list-index-sync.c
src/lib-index/test-mail-transaction-log-view.c
src/lib-mail/test-message-id.c
src/lib-storage/mail-storage-service.c
src/lib/test-istream-crlf.c

index c650d4cffbb5bde7ba7676d2b98ab41fd51146c1..dbce8be4345261fa7e96694bdefac918cb646bf0 100644 (file)
@@ -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:
index 05414314b2ee087b98f6edff4596e8d309a5834b..35129b41a919d98feb8c1c87c210f540334457ad 100644 (file)
@@ -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
index 4cb88bcf77284f0a6ab00e71e3dabb22dc37d092..d09672e7cb9527b502408b00b2dd25ee4157cd1f 100644 (file)
@@ -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;
index 91b0e56bff4421efe89c93d28f82bf270f3eaafc..2bfb45cc4a9b69a3d5d7a560912d3b01ec252376 100644 (file)
@@ -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();
index 2b7b52ff8880f23ba1e6b9b4cb25a8779522561f..799ea3be94e2b832cb89f734d6ac2f6ac0a10e1c 100644 (file)
@@ -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();
index 407256e76502e7e9d4365328799d7e27708295b0..721daa449c56e470913dbfcf732508bbfdd993b9 100644 (file)
@@ -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. */
index aa8f2e5a33a050e9ece448f6f712ce4cd47442b1..ad1303875581edc8f732c1181669a544330b7e8a 100644 (file)
@@ -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;