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

dovecot at dovecot.org dovecot at dovecot.org
Mon Apr 5 09:18:17 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/c32f55615055
changeset: 11074:c32f55615055
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Apr 05 09:18:14 2010 +0300
description:
Small code changes to make static analyzer happier.

diffstat:

 src/auth/mech-winbind.c                   |   3 ++-
 src/config/config-filter.c                |   3 ++-
 src/doveadm/doveadm.h                     |   2 +-
 src/lib-index/mail-index-sync-ext.c       |  11 +++++++----
 src/lib-index/mail-transaction-log-view.c |   1 +
 src/lib-mail/message-decoder.c            |   2 +-
 src/lib-storage/index/index-sort-string.c |   2 ++
 src/lib-storage/mail-search.c             |   4 +++-
 src/lib/env-util.c                        |   2 ++
 src/lib/test-istream-concat.c             |   1 +
 src/lib/test-istream-seekable.c           |   1 +
 src/plugins/expire/expire-plugin.c        |   2 +-
 12 files changed, 24 insertions(+), 10 deletions(-)

diffs (177 lines):

diff -r 462376c65e73 -r c32f55615055 src/auth/mech-winbind.c
--- a/src/auth/mech-winbind.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/auth/mech-winbind.c	Mon Apr 05 09:18:14 2010 +0300
@@ -197,7 +197,7 @@
 	token = t_strsplit_spaces(answer, " ");
 	if (token[0] == NULL ||
 	    (token[1] == NULL && strcmp(token[0], "BH") != 0) ||
-	    (token[2] == NULL && gss_spnego)) {
+	    (gss_spnego && (token[1] == NULL || token[2] == NULL))) {
 		auth_request_log_error(auth_request, "winbind",
 				       "Invalid input from helper: %s", answer);
 		return HR_RESTART;
@@ -241,6 +241,7 @@
 		const char *user, *p, *error;
 
 		user = gss_spnego ? token[2] : token[1];
+		i_assert(user != NULL);
 
 		p = strchr(user, '\\');
 		if (p != NULL) {
diff -r 462376c65e73 -r c32f55615055 src/config/config-filter.c
--- a/src/config/config-filter.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/config/config-filter.c	Mon Apr 05 09:18:14 2010 +0300
@@ -312,7 +312,7 @@
 {
 	struct config_filter_parser *const *src;
 	struct config_module_parser *dest;
-	const char *error, **error_p;
+	const char *error = NULL, **error_p;
 	unsigned int i, count;
 
 	src = config_filter_find_all(ctx, module, filter, output_r);
@@ -337,6 +337,7 @@
 
 		if (config_module_parser_apply_changes(dest, src[i], pool,
 						       error_p) < 0) {
+			i_assert(error != NULL);
 			config_filter_parsers_free(dest);
 			*error_r = error;
 			return -1;
diff -r 462376c65e73 -r c32f55615055 src/doveadm/doveadm.h
--- a/src/doveadm/doveadm.h	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/doveadm/doveadm.h	Mon Apr 05 09:18:14 2010 +0300
@@ -24,7 +24,7 @@
 
 void doveadm_register_cmd(const struct doveadm_cmd *cmd);
 
-void usage(void);
+void usage(void) ATTR_NORETURN;
 void help(const struct doveadm_cmd *cmd);
 
 const char *unixdate2str(time_t timestamp);
diff -r 462376c65e73 -r c32f55615055 src/lib-index/mail-index-sync-ext.c
--- a/src/lib-index/mail-index-sync-ext.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib-index/mail-index-sync-ext.c	Mon Apr 05 09:18:14 2010 +0300
@@ -494,10 +494,13 @@
 		if (!mail_index_map_lookup_ext(map, name, &ext_map_idx))
 			ext_map_idx = (uint32_t)-1;
 	}
-	ext = ext_map_idx == (uint32_t)-1 ? NULL :
-		array_idx(&map->extensions, ext_map_idx);
-	if (ext != NULL)
+	if (ext_map_idx == (uint32_t)-1)
+		ext = NULL;
+	else {
+		ext = array_idx(&map->extensions, ext_map_idx);
 		name = ext->name;
+	}
+	i_assert(name != NULL);
 
 	if (!ctx->internal_update &&
 	    strcmp(name, MAIL_INDEX_EXT_KEYWORDS) == 0) {
@@ -525,7 +528,7 @@
 		return -1;
 	}
 
-	if (ext_map_idx != (uint32_t)-1) {
+	if (ext != NULL) {
 		/* exists already */
 		if (u->reset_id == ext->reset_id) {
 			/* check if we need to resize anything */
diff -r 462376c65e73 -r c32f55615055 src/lib-index/mail-transaction-log-view.c
--- a/src/lib-index/mail-transaction-log-view.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib-index/mail-transaction-log-view.c	Mon Apr 05 09:18:14 2010 +0300
@@ -189,6 +189,7 @@
 		view->head = file;
 		file = file->next;
 	}
+	i_assert(view->tail != NULL);
 
 	if (min_file_offset == 0) {
 		/* beginning of the file */
diff -r 462376c65e73 -r c32f55615055 src/lib-mail/message-decoder.c
--- a/src/lib-mail/message-decoder.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib-mail/message-decoder.c	Mon Apr 05 09:18:14 2010 +0300
@@ -252,7 +252,7 @@
 				struct message_block *output)
 {
 	const unsigned char *data = NULL;
-	size_t pos, size = 0;
+	size_t pos = 0, size = 0;
 	int ret;
 
 	if (ctx->encoding_buf->used != 0) {
diff -r 462376c65e73 -r c32f55615055 src/lib-storage/index/index-sort-string.c
--- a/src/lib-storage/index/index-sort-string.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib-storage/index/index-sort-string.c	Mon Apr 05 09:18:14 2010 +0300
@@ -651,6 +651,8 @@
 		}
 		nodes[i].sort_id_changed = TRUE;
 	}
+	i_assert(str != NULL);
+
 	return right_str == NULL || strcmp(str, right_str) < 0 ||
 		(strcmp(str, right_str) == 0 &&
 		 nodes[i-1].sort_id == right_sort_id) ? 0 : -1;
diff -r 462376c65e73 -r c32f55615055 src/lib-storage/mail-search.c
--- a/src/lib-storage/mail-search.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib-storage/mail-search.c	Mon Apr 05 09:18:14 2010 +0300
@@ -560,8 +560,10 @@
 				SEARCH_OR : SEARCH_SUB;
 			args->not = FALSE;
 			sub = args->value.subargs;
-			for (; sub != NULL; sub = sub->next)
+			do {
 				sub->not = !sub->not;
+				sub = sub->next;
+			} while (sub != NULL);
 		}
 
 		if ((args->type == SEARCH_SUB && parent_and) ||
diff -r 462376c65e73 -r c32f55615055 src/lib/env-util.c
--- a/src/lib/env-util.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib/env-util.c	Mon Apr 05 09:18:14 2010 +0300
@@ -77,6 +77,8 @@
 	unsigned int i, count;
 	pool_t pool;
 
+	i_assert(environ != NULL);
+
 	for (count = 0; environ[count] != NULL; count++) ;
 
 	pool = pool_alloconly_create("saved environment", 4096);
diff -r 462376c65e73 -r c32f55615055 src/lib/test-istream-concat.c
--- a/src/lib/test-istream-concat.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib/test-istream-concat.c	Mon Apr 05 09:18:14 2010 +0300
@@ -65,6 +65,7 @@
 		test_istream_set_allow_eof(streams[i], TRUE);
 	}
 	streams[i] = NULL;
+	i_assert(offset > 0);
 
 	input = i_stream_create_concat(streams);
 	for (i = 0; i < 100; i++) {
diff -r 462376c65e73 -r c32f55615055 src/lib/test-istream-seekable.c
--- a/src/lib/test-istream-seekable.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/lib/test-istream-seekable.c	Mon Apr 05 09:18:14 2010 +0300
@@ -83,6 +83,7 @@
 		test_istream_set_allow_eof(streams[i], TRUE);
 	}
 	streams[i] = NULL;
+	i_assert(offset > 0);
 
 	buffer_size = (rand() % 100) + 1; size = 0;
 	input = i_stream_create_seekable(streams, buffer_size, fd_callback, NULL);
diff -r 462376c65e73 -r c32f55615055 src/plugins/expire/expire-plugin.c
--- a/src/plugins/expire/expire-plugin.c	Mon Apr 05 09:17:31 2010 +0300
+++ b/src/plugins/expire/expire-plugin.c	Mon Apr 05 09:18:14 2010 +0300
@@ -101,7 +101,7 @@
 	struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(t->box);
 	struct expire_transaction_context *xt = EXPIRE_CONTEXT(t);
 	struct mailbox *box = t->box;
-	time_t new_stamp;
+	time_t new_stamp = 0;
 	bool update_dict = FALSE;
 	int ret;
 


More information about the dovecot-cvs mailing list