mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 12:41:00 +02:00
BUG/MEDIUM: map/lua: Return an error if a map is loaded during runtime
In sample_load_map() function, the global mode is now tested to be sure to be in the starting mode. If not, an error is returned. At first glance, this patch may seem useless because maps are loaded during the configuration parsing. But in fact, it is possible to load a map from the lua, using Map:new() method. And, there is nothing to forbid to call this method at runtime, during a script execution. It must never be done because it may perform an filesystem access for unknown maps or allocation for known ones. So at runtime, it means a blocking call or a memroy leak. Note it is still possible to load a map from the lua, but in the global part of a script only. This part is executed during the configuration parsing. This patch must be backported in all stable versions.
This commit is contained in:
parent
76b4a12591
commit
0eb967d122
@ -98,6 +98,11 @@ int sample_load_map(struct arg *arg, struct sample_conv *conv,
|
||||
{
|
||||
struct map_descriptor *desc;
|
||||
|
||||
if (!(global.mode & MODE_STARTING)) {
|
||||
memprintf(err, "map: cannot load map at runtime");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* create new map descriptor */
|
||||
desc = map_create_descriptor(conv);
|
||||
if (!desc) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user