From: Timo Sirainen Date: Fri, 11 Jul 2025 11:08:06 +0000 (+0300) Subject: lib-settings: Fix crash when using %variables in SET_FILE type settings X-Git-Tag: 2.4.2~678 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=412512dc2eb400c31eac1686560596db7f074939;p=thirdparty%2Fdovecot%2Fcore.git lib-settings: Fix crash when using %variables in SET_FILE type settings For example this prevented using: crypt_global_public_key_file = %{userdb:public_file} --- diff --git a/src/lib-settings/settings.c b/src/lib-settings/settings.c index 72126555b2..64880c6fb9 100644 --- a/src/lib-settings/settings.c +++ b/src/lib-settings/settings.c @@ -872,7 +872,10 @@ settings_var_expand(struct settings_apply_ctx *ctx, unsigned int key_idx, return 0; } else if (ctx->info->defines[key_idx].type == SET_FILE) { file.path = str_c(ctx->str); - *value = settings_file_get_value(&ctx->mpool->pool, &file); + if (settings_parse_read_file(file.path, file.path, + &ctx->mpool->pool, NULL, + value, error_r) < 0) + return -1; } else { *value = p_strdup(&ctx->mpool->pool, str_c(ctx->str)); }