It was supposed to return a cached table, but instead it now allocated a new
one every time from mail_user's pool. This kept growing memory usage after
every mail_user_var_expand_table() call.
Broken by
10eaf04197cfe7f6ab1fd4ab57c9f38e75b2889d
const struct var_expand_table *
mail_user_var_expand_table(struct mail_user *user)
{
+ /* use a cached table if possible */
+ if (user->var_expand_table != NULL)
+ return user->var_expand_table;
+
const char *username =
p_strdup(user->pool, t_strcut(user->username, '@'));
const char *domain = i_strchr_to_next(user->username, '@');