[Tarantool-patches] [PATCH luajit] Make string to number conversions fail on NUL char
Kirill Yukhin
kyukhin at tarantool.org
Thu Mar 5 10:49:39 MSK 2020
Hello,
On 14 фев 02:57, Igor Munkin wrote:
> The routine used for conversion a string representation to number
> (lj_strscan_scan) doesn't respect the size of the given string/buffer.
> Such behaviour leads to the following results:
>
> | local a = tonumber("inf\x00imun") -- the result is 'inf'
> | local b = tonumber("\x36\x00\x80") -- the result is 6
>
> The behaviour described above is similar to the one vanila Lua 5.1 has:
>
> | $ ./lua -e 'print(_VERSION, tonumber("inf"..string.char(0).."imun"))'
> | Lua 5.1 inf
>
> However, the issue is fixed in Lua 5.2 and the results are the following:
> | $ ./lua -e 'print(_VERSION, tonumber("inf"..string.char(0).."imun"))'
> | Lua 5.2 nil
>
> The patch introduces additional parameter to lj_strscan_scan routine to
> detect whether there is nothing left after the null character.
>
> Relates to tarantool#4773
>
> Reported-by: Alexander Turenko <alexander.turenko at tarantool.org>
> Signed-off-by: Igor Munkin <imun at tarantool.org>
I've checked your patch inti tarantool/luajit repo and
bumped new version in 1.10, 2.2, 2.3 and master.
--
Regards, Kirill Yukhin
More information about the Tarantool-patches
mailing list