Mercurial > dovecot > core-2.2
changeset 21867:a5de42736743
var-expand-crypt: Fix data decryption
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Mon, 27 Mar 2017 11:02:31 +0300 |
parents | f23b6f713a50 |
children | 84ab6a7f172f |
files | src/plugins/var-expand-crypt/var-expand-crypt-plugin.c |
diffstat | 1 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/var-expand-crypt/var-expand-crypt-plugin.c Mon Mar 27 09:39:03 2017 +0300 +++ b/src/plugins/var-expand-crypt/var-expand-crypt-plugin.c Mon Mar 27 11:02:31 2017 +0300 @@ -260,18 +260,14 @@ if (var_expand_crypt_settings(&ctx, args, error_r) < 0) return -1; - str_append(field_value, value); - - const char *encdata = str_c(field_value); - const char *enciv = NULL; + const char *encdata = value; + const char *enciv = ""; /* make sure IV is correct */ if (ctx.iv->used == 0 && (p = strchr(encdata, '$')) != NULL) { /* see if IV can be taken from data */ enciv = t_strcut(encdata, '$'); encdata = t_strcut(p+1,'$'); - } else { - encdata = t_strdup(str_c(field_value)); } str_truncate(field_value, 0); @@ -301,8 +297,10 @@ ret = var_expand_crypt(dctx, ctx.enckey, ctx.iv, field_value, tmp, error_r); dcrypt_ctx_sym_destroy(&dctx); - if (ret == 0) + if (ret == 0) { *result_r = str_c(tmp); + ret = 1; + } return ret; }