]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: lua: Duplicate lua strings in sample fetches/converters arg array
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 6 Aug 2020 06:54:25 +0000 (08:54 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 7 Aug 2020 12:26:35 +0000 (14:26 +0200)
commitaec27ef443a8263bd1914acf449e30851feb86df
tree26753598faec98551ce796f2c3f3f08dddebec68
parentfdea1b6319bc014320a18ba7b7043ba0694dd0dd
BUG/MINOR: lua: Duplicate lua strings in sample fetches/converters arg array

Strings in the argument array used by sample fetches and converters must be
duplicated. This is mandatory because, during the arguments validations, these
strings may be converted and released. It works this way during the
configuration parsing and there is no reason to adapt this behavior during the
runtime when a sample fetch or a sample converter is called from the lua. In
fact, there is a reason to not change the behavior. It must reamain simple for
everyone to add new fetches or converters.

Thus, lua strings are duplicated. It is only performed at the end of the
hlua_lua2arg_check() function, if the argument is still a ARGT_STR. Of course,
it requires a cleanup loop after the call or when an error is triggered.

This patch depends on following commits:

  * 959171376 "BUG/MINOR: arg: Fix leaks during arguments validation for fetches/converters"
  * fdea1b631 "MINOR: hlua: Don't needlessly copy lua strings in trash during args validation"

It may be backported to all supported versions, most probably as far as 2.1
only.
src/hlua.c