]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Assign tmpl on heap for async expansion
authorNick Porter <nick@portercomputing.co.uk>
Thu, 11 Jan 2024 11:21:10 +0000 (11:21 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Thu, 11 Jan 2024 11:21:10 +0000 (11:21 +0000)
src/modules/rlm_linelog/rlm_linelog.c

index efa6585bc798db807e256a56264193bcb545f25e..31b64f80d3531d5b2262d9047d9408c41c927cc4 100644 (file)
@@ -673,7 +673,7 @@ static unlang_action_t CC_HINT(nonnull) mod_do_linelog(rlm_rcode_t *p_result, mo
 
        char                            buff[4096];
        char                            *p = buff;
-       tmpl_t                          empty, *vpt = NULL, *vpt_p = NULL;
+       tmpl_t                          *empty, *vpt = NULL, *vpt_p = NULL;
        ssize_t                         slen;
        bool                            with_delim;
 
@@ -725,9 +725,10 @@ static unlang_action_t CC_HINT(nonnull) mod_do_linelog(rlm_rcode_t *p_result, mo
                tmpl_str = cf_pair_value(cp);
                if (!tmpl_str || (tmpl_str[0] == '\0')) {
                        RDEBUG2("Path \"%s\" resolves to an empty config pair", p);
-                       vpt_p = tmpl_init_shallow(&empty, TMPL_TYPE_DATA, T_DOUBLE_QUOTED_STRING, "", 0, NULL);
-                       fr_value_box_init_null(&empty.data.literal);
-                       fr_value_box_strdup_shallow(&empty.data.literal, NULL, "", false);
+                       empty = talloc(frame_ctx, tmpl_t);
+                       vpt_p = tmpl_init_shallow(empty, TMPL_TYPE_DATA, T_DOUBLE_QUOTED_STRING, "", 0, NULL);
+                       fr_value_box_init_null(&empty->data.literal);
+                       fr_value_box_strdup_shallow(&empty->data.literal, NULL, "", false);
                        goto build_vector;
                }