Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
TestErasureCodeShec_arguments: fix stack-use-after-scope
When sanitizer is enabled, unittest_erasure_code_shec_arguments shows, ``` ==412235==ERROR: AddressSanitizer: stack-use-after-scope on address 0xffffca8362c0 at pc 0xaaaab4f1d2b8 bp 0xffffca8356d0 sp 0xffffca8356c8 READ of size 4 at 0xffffca8362c0 thread T0 #0 0xaaaab4f1d2b4 in getint(std::initializer_list<int>) /root/ceph/src/test/erasure-code/TestErasureCodeShec_arguments.cc:46:21 #1 0xaaaab4f25cac in int std::__invoke_impl<int, int (*&)(std::initializer_list<int>), std::initializer_list<int>&>(std::__invoke_other, int (*&)(std::initializer_list<int>), std::initializer_list<int>&) /usr/bin/../lib/gcc/aarch64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 #2 0xaaaab4f24e90 in std::__invoke_result<int (*&)(std::initializer_list<int>), std::initializer_list<int>&>::type std::__invoke<int (*&)(std::initializer_list<int>), std::initializer_list<int>&>(int (*&)(std::initializer_list<int>), std::initializer_list<int>&) /usr/bin/../lib/gcc/aarch64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14 #3 0xaaaab4f248e8 in bool std::ranges::__any_of_fn::operator()<std::initializer_list<int>*, std::initializer_list<int>*, int (*)(std::initializer_list<int>), std::_Bind_front<bool (*)(unsigned int, int) noexcept, unsigned int> >(std::initializer_list<int>*, std::initializer_list<int>*, std::_Bind_front<bool (*)(unsigned int, int) noexcept, unsigned int>, int (*)(std::initializer_list<int>)) const /usr/bin/../lib/gcc/aarch64-linux-gnu/11/../../../../include/c++/11/bits/ranges_algo.h:109:30 #4 0xaaaab4f1d72c in bool std::ranges::__any_of_fn::operator()<std::array<std::initializer_list<int>, 27ul>&, int (*)(std::initializer_list<int>), std::_Bind_front<bool (*)(unsigned int, int) noexcept, unsigned int> >(std::array<std::initializer_list<int>, 27ul>&, std::_Bind_front<bool (*)(unsigned int, int) noexcept, unsigned int>, int (*)(std::initializer_list<int>)) const /usr/bin/../lib/gcc/aarch64-linux-gnu/11/../../../../include/c++/11/bits/ranges_algo.h:120:9 #5 0xaaaab4f0fca8 in create_table_shec432() /root/ceph/src/test/erasure-code/TestErasureCodeShec_arguments.cc:96:15 #6 0xaaaab4f1b140 in main /root/ceph/src/test/erasure-code/TestErasureCodeShec_arguments.cc:361:3 #7 0xffff9b9673f8 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 #8 0xffff9b9674c8 in __libc_start_main csu/../csu/libc-start.c:392:3 #9 0xaaaab4e5b8ac in _start (/root/ceph/build/bin/unittest_erasure_code_shec_arguments+0x11b8ac) (BuildId: c1fce44a2cd8b7e33e7f07b2de20b9a2f57c314a) ``` keep a as initializer_list could fix this error. Signed-off-by: Rongqi Sun <sunrongqi@huawei.com>
- Loading branch information