push
github
FFI: Fix __tostring metamethod access to enum cdata value. Thanks to Sergey Kaplun. (cherry picked from commit f2a1cd432) On a 64-bit host, `*(uint32_t **)p` (in the `lj_cf_ffi_meta___tostring()`) is the read of 8 bytes, while the size of the cdata tail for the enum is only 4. This leads to heap-buffer-overflow during the call of `tostring()` on the corresponding cdata. This patch fixes the pointer cast to `(uint32_t *)p`, which is correct. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#10199
5676 of 6025 branches covered (94.21%)
Branch coverage included in aggregate %.
1 of 1 new or added line in 1 file covered. (100.0%)
15 existing lines in 4 files now uncovered.21645 of 23431 relevant lines covered (92.38%)
2946642.1 hits per line