]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-var-expand: Ensure we don't try to set transfer from partial of it
authorAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 17 Feb 2025 09:41:09 +0000 (11:41 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 17 Feb 2025 18:43:45 +0000 (18:43 +0000)
src/lib-var-expand/var-expand.c

index 2248e69c903b709fed491851680555d8fe68da06..65b4c814e2f909e075422952865d61f84970d31a 100644 (file)
@@ -308,7 +308,10 @@ var_expand_merge_tables(pool_t pool, const struct var_expand_table *a,
 void var_expand_state_set_transfer_data(struct var_expand_state *state,
                                        const void *value, size_t len)
 {
-       i_assert(value != NULL || len == 0);
+       /* Ensure we are not using value from transfer data */
+       i_assert((const char *)value < (const char *)state->transfer->data ||
+                (const char *)value > (const char *)state->transfer->data +
+                                                    state->transfer->used);
        str_truncate(state->transfer, 0);
        str_append_data(state->transfer, value, len);
        state->transfer_set = TRUE;