[flang][unittests] Fix buffer overrun in FrontendActionTest (#84381)

When` SmallVector<char>` is used as a backing storage, it can't be
assumed to end with a \x0. When creating a `StringRef` from it, pass the
length explicitly.

This was detected by address sanitizer.
This commit is contained in:
Krzysztof Parzyszek 2024-03-08 07:21:21 -06:00 committed by GitHub
parent 65524fcb5d
commit aa26faf05e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -198,7 +198,7 @@ TEST_F(FrontendActionTest, EmitLLVM) {
EXPECT_TRUE(success);
EXPECT_TRUE(!outputFileBuffer.empty());
EXPECT_TRUE(llvm::StringRef(outputFileBuffer.data())
EXPECT_TRUE(llvm::StringRef(outputFileBuffer.begin(), outputFileBuffer.size())
.contains("define void @_QQmain()"));
}
@ -227,6 +227,7 @@ TEST_F(FrontendActionTest, EmitAsm) {
EXPECT_TRUE(success);
EXPECT_TRUE(!outputFileBuffer.empty());
EXPECT_TRUE(llvm::StringRef(outputFileBuffer.data()).contains("_QQmain"));
EXPECT_TRUE(llvm::StringRef(outputFileBuffer.begin(), outputFileBuffer.size())
.contains("_QQmain"));
}
} // namespace