]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Check var_expand_long return value correctly
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 22 Mar 2017 17:33:52 +0000 (19:33 +0200)
committerGitLab <gitlab@git.dovecot.net>
Thu, 23 Mar 2017 11:18:26 +0000 (13:18 +0200)
src/lib/var-expand.c

index 9ee098dff479188c8fb880295437fa94e9ea7377..2ba8ebc853bfaaa74bce9c3e89460731696a16f4 100644 (file)
@@ -217,6 +217,7 @@ var_expand_hash(const struct var_expand_table *table,
        const char *const *args = NULL;
        const char *algo = key;
        const char *value;
+       int ret;
 
        if (p != NULL) {
                algo = t_strcut(key, ';');
@@ -234,9 +235,9 @@ var_expand_hash(const struct var_expand_table *table,
        string_t *salt = t_str_new(64);
        string_t *tmp = t_str_new(method->digest_size);
 
-       if (var_expand_long(table, func_table, field, strlen(field),
-                           context, &value, error_r) < 0)
-               return -1;
+       if ((ret = var_expand_long(table, func_table, field, strlen(field),
+                                  context, &value, error_r)) < 1)
+               return ret;
 
        str_append(field_value, value);