mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-24 05:32:21 +00:00
BUG/MINOR: lua: Duplicate map name to load it when a new Map object is created
When a new map is created, the sample_load_map() function is called. To do so, an argument array is created with the name as first argument. Because it is a lua string, owned by the lua, it must be duplicated. The sample_load_map() function will convert this argument to a map. In theory, after the conversion, it must release the original string. It is not performed for now and it is a bug that will be fixed in the next commit. This patch may be backported to all supported versions, most probably as far as 2.1 only. But it must be backported with the next commit "BUG/MINOR: arg: Fix leaks during arguments validation for fetches/converters".
This commit is contained in:
parent
b45bf8eb70
commit
73292e9e66
@ -1512,7 +1512,9 @@ __LJMP static int hlua_map_new(struct lua_State *L)
|
||||
|
||||
/* fill fake args. */
|
||||
args[0].type = ARGT_STR;
|
||||
args[0].data.str.area = (char *)fn;
|
||||
args[0].data.str.area = strdup(fn);
|
||||
args[0].data.str.data = strlen(fn);
|
||||
args[0].data.str.size = args[0].data.str.data+1;
|
||||
args[1].type = ARGT_STOP;
|
||||
|
||||
/* load the map. */
|
||||
@ -1524,6 +1526,7 @@ __LJMP static int hlua_map_new(struct lua_State *L)
|
||||
lua_pushfstring(L, "'new': %s.", err);
|
||||
lua_concat(L, 2);
|
||||
free(err);
|
||||
free(args[0].data.str.area);
|
||||
WILL_LJMP(lua_error(L));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user