From: Aki Tuomi Date: Mon, 17 Feb 2025 09:41:09 +0000 (+0200) Subject: lib-var-expand: Ensure we don't try to set transfer from partial of it X-Git-Tag: 2.4.1~194 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=771d34ec30825ca51f760da7c4a35da6b40ffa25;p=thirdparty%2Fdovecot%2Fcore.git lib-var-expand: Ensure we don't try to set transfer from partial of it --- diff --git a/src/lib-var-expand/var-expand.c b/src/lib-var-expand/var-expand.c index 2248e69c90..65b4c814e2 100644 --- a/src/lib-var-expand/var-expand.c +++ b/src/lib-var-expand/var-expand.c @@ -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;