From: Timo Sirainen Date: Sun, 28 May 2023 20:09:10 +0000 (+0300) Subject: lib-settings: If we already found out setting doesn't exist, don't try to parse it X-Git-Tag: 2.4.1~1612 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3fcadeb61b85a17c4ea2d5aeeb7d87ab02cb517f;p=thirdparty%2Fdovecot%2Fcore.git lib-settings: If we already found out setting doesn't exist, don't try to parse it --- diff --git a/src/lib-settings/settings.c b/src/lib-settings/settings.c index c6f9103c45..4f04a303c2 100644 --- a/src/lib-settings/settings.c +++ b/src/lib-settings/settings.c @@ -911,7 +911,9 @@ settings_override_get_value(struct setting_parser_context *parser, key = t_strconcat("plugin/", key, NULL); old_value = settings_parse_get_value(parser, &key, &value_type); } - if (!set->append || old_value == NULL) { + if (old_value == NULL) + return 0; + if (!set->append) { *_key = key; *value_r = set->value; return 1; @@ -963,8 +965,10 @@ settings_instance_override(struct settings_apply_ctx *ctx, &key, &value, error_r); if (ret < 0) return -1; - if (ret == 0) + if (ret == 0) { + /* setting doesn't exist in this info */ continue; + } if (value != set->value) value = p_strdup(&ctx->mpool->pool, value);