dovecot-2.0: Small code changes to make static analyzer happier.

dovecot at dovecot.org dovecot at dovecot.org
Mon Apr 5 10:46:22 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/fa08ed2b7560
changeset: 11076:fa08ed2b7560
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Apr 05 10:44:06 2010 +0300
description:
Small code changes to make static analyzer happier.

diffstat:

 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(-)

diffs (116 lines):

diff -r 3b8542d58181 -r fa08ed2b7560 src/config/config-request.c
--- a/src/config/config-request.c	Mon Apr 05 10:36:31 2010 +0300
+++ b/src/config/config-request.c	Mon Apr 05 10:44:06 2010 +0300
@@ -100,13 +100,19 @@
 	}
 	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 -r 3b8542d58181 -r fa08ed2b7560 src/lib-index/mail-cache-compress.c
--- a/src/lib-index/mail-cache-compress.c	Mon Apr 05 10:36:31 2010 +0300
+++ b/src/lib-index/mail-cache-compress.c	Mon Apr 05 10:44:06 2010 +0300
@@ -131,6 +131,7 @@
 		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 @@
 	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 -r 3b8542d58181 -r fa08ed2b7560 src/lib-index/mailbox-list-index-sync.c
--- a/src/lib-index/mailbox-list-index-sync.c	Mon Apr 05 10:36:31 2010 +0300
+++ b/src/lib-index/mailbox-list-index-sync.c	Mon Apr 05 10:44:06 2010 +0300
@@ -615,6 +615,7 @@
 			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 -r 3b8542d58181 -r fa08ed2b7560 src/lib-index/test-mail-transaction-log-view.c
--- a/src/lib-index/test-mail-transaction-log-view.c	Mon Apr 05 10:36:31 2010 +0300
+++ b/src/lib-index/test-mail-transaction-log-view.c	Mon Apr 05 10:44:06 2010 +0300
@@ -139,7 +139,8 @@
 		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 -r 3b8542d58181 -r fa08ed2b7560 src/lib-mail/test-message-id.c
--- a/src/lib-mail/test-message-id.c	Mon Apr 05 10:36:31 2010 +0300
+++ b/src/lib-mail/test-message-id.c	Mon Apr 05 10:44:06 2010 +0300
@@ -22,9 +22,12 @@
 	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 -r 3b8542d58181 -r fa08ed2b7560 src/lib-storage/mail-storage-service.c
--- a/src/lib-storage/mail-storage-service.c	Mon Apr 05 10:36:31 2010 +0300
+++ b/src/lib-storage/mail-storage-service.c	Mon Apr 05 10:44:06 2010 +0300
@@ -569,7 +569,10 @@
 	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 -r 3b8542d58181 -r fa08ed2b7560 src/lib/test-istream-crlf.c
--- a/src/lib/test-istream-crlf.c	Mon Apr 05 10:36:31 2010 +0300
+++ b/src/lib/test-istream-crlf.c	Mon Apr 05 10:44:06 2010 +0300
@@ -9,7 +9,7 @@
 {
 	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;


More information about the dovecot-cvs mailing list