dovecot-2.2: lib-settings: Make static analyzer happier.

dovecot at dovecot.org dovecot at dovecot.org
Sun May 20 03:26:30 EEST 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/94286d055872
changeset: 14392:94286d055872
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Mar 26 20:46:55 2012 +0300
description:
lib-settings: Make static analyzer happier.

diffstat:

 src/lib-settings/settings-parser.c |  11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diffs (50 lines):

diff -r ba1fc76e3a2c -r 94286d055872 src/lib-settings/settings-parser.c
--- a/src/lib-settings/settings-parser.c	Mon Mar 26 20:39:09 2012 +0300
+++ b/src/lib-settings/settings-parser.c	Mon Mar 26 20:46:55 2012 +0300
@@ -773,7 +773,8 @@
 	}
 
 	do {
-		if (link->info == &strlist_info) {
+		if (def == NULL) {
+			i_assert(link->info == &strlist_info);
 			settings_parse_strlist(ctx, link, key, value);
 			return 1;
 		}
@@ -804,6 +805,7 @@
 		return NULL;
 	if (def == NULL) {
 		/* strlist */
+		i_assert(link->info == &strlist_info);
 		return key;
 	}
 
@@ -823,7 +825,7 @@
 
 	if (!settings_find_key(ctx, key, &def, &link))
 		return NULL;
-	if (link->set_struct == NULL)
+	if (link->set_struct == NULL || def == NULL)
 		return NULL;
 
 	*type_r = def->type;
@@ -839,7 +841,7 @@
 
 	if (!settings_find_key(ctx, key, &def, &link))
 		return FALSE;
-	if (link->change_struct == NULL)
+	if (link->change_struct == NULL || def == NULL)
 		return FALSE;
 
 	p = STRUCT_MEMBER_P(link->change_struct, def->offset);
@@ -1159,8 +1161,9 @@
 
 	if (!settings_find_key(ctx, key, &def, &link))
 		return;
-	if (link->info == &strlist_info) {
+	if (def == NULL) {
 		/* parent is strlist, no expansion needed */
+		i_assert(link->info == &strlist_info);
 		return;
 	}
 


More information about the dovecot-cvs mailing list