From 9ab21a3c2d07c29c72d0c230778d224458af51a2 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 19 Sep 2024 15:06:09 +0200 Subject: [PATCH] CLEANUP: stick-table: make the file location point to a global file name The file name used to point to the calling function's stack for stick tables, which was OK during parsing but remained dangling afterwards. At least it was already marked const so as not to accidentally free it. Let's make it point to a file_name_node now. --- include/haproxy/stick_table-t.h | 2 +- src/stick_table.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/haproxy/stick_table-t.h b/include/haproxy/stick_table-t.h index 3aa55e378..dea1e982a 100644 --- a/include/haproxy/stick_table-t.h +++ b/include/haproxy/stick_table-t.h @@ -224,7 +224,7 @@ struct stktable { /* rarely used config stuff below (should not interfere with updt_lock) */ struct proxy *proxies_list; /* The list of proxies which reference this stick-table. */ struct { - const char *file; /* The file where the stick-table is declared. */ + const char *file; /* The file where the stick-table is declared (global name). */ int line; /* The line in this the stick-table is declared. */ } conf; }; diff --git a/src/stick_table.c b/src/stick_table.c index f69146d1d..f49fb0af5 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -1181,7 +1181,7 @@ int parse_stick_table(const char *file, int linenum, char **args, t->idlen = strlen(id); t->nid = nid; t->type = (unsigned int)-1; - t->conf.file = file; + t->conf.file = copy_file_name(file); t->conf.line = linenum; t->write_to.name = NULL; t->brates_factor = 1;