From 6d90c590b7f5a215d4c73a298336ddf005f65ce3 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Sat, 11 Feb 2023 16:52:33 -0800 Subject: [PATCH] [JITLink] Don't initialize local ArrayRefs with initializer lists. This can lead to use-after-free errors (see e.g. https://lab.llvm.org/buildbot/#/builders/168/builds/11848). --- llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp b/llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp index 90353b5..80f5571 100644 --- a/llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp +++ b/llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp @@ -721,9 +721,9 @@ TEST(LinkGraphTest, GraphAllocationMethods) { EXPECT_EQ(Buf1.size(), 10U); // Test allocation of content-backed buffer. - ArrayRef Buf2Src = {1, static_cast(-1), 0, 42}; - auto Buf2 = G.allocateContent(Buf2Src); - EXPECT_EQ(Buf2, Buf2Src); + char Buf2Src[] = {1, static_cast(-1), 0, 42}; + auto Buf2 = G.allocateContent(ArrayRef(Buf2Src)); + EXPECT_EQ(Buf2, ArrayRef(Buf2Src)); // Test c-string allocation from StringRef. StringRef Buf3Src = "hello"; @@ -739,8 +739,8 @@ TEST(LinkGraphTest, IsCStringBlockTest) { auto &Sec = G.createSection("__data", orc::MemProt::Read | orc::MemProt::Write); - ArrayRef CString = "hello, world!"; - ArrayRef NotACString = {0, 1, 0, 1, 0}; + char CString[] = "hello, world!"; + char NotACString[] = {0, 1, 0, 1, 0}; auto &CStringBlock = G.createContentBlock(Sec, CString, orc::ExecutorAddr(), 1, 0); -- 2.7.4