[dumpstate] fix -Wreturn-stack-address
ZippedBugreportGenerationTest#getZipFilePath() creates a temporary
std::string, then returns a pointer to the C str within the stack
temporary. Fix by returning a std::string and calling .c_str() at the
call sites of getZipFilePath().
Bug: 139945549
Test: mm
Change-Id: Ie2fc423f74e8ed2cf3f427c4afc3c340ff6c57cc
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
diff --git a/cmds/dumpstate/tests/dumpstate_smoke_test.cpp b/cmds/dumpstate/tests/dumpstate_smoke_test.cpp
index 181046a..7e6f6f5 100644
--- a/cmds/dumpstate/tests/dumpstate_smoke_test.cpp
+++ b/cmds/dumpstate/tests/dumpstate_smoke_test.cpp
@@ -216,8 +216,8 @@
duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
}
- static const char* getZipFilePath() {
- return ds.GetPath(".zip").c_str();
+ static const std::string getZipFilePath() {
+ return ds.GetPath(".zip");
}
};
std::shared_ptr<std::vector<SectionInfo>> ZippedBugreportGenerationTest::sections =
@@ -226,12 +226,12 @@
std::chrono::milliseconds ZippedBugreportGenerationTest::duration = 0s;
TEST_F(ZippedBugreportGenerationTest, IsGeneratedWithoutErrors) {
- EXPECT_EQ(access(getZipFilePath(), F_OK), 0);
+ EXPECT_EQ(access(getZipFilePath().c_str(), F_OK), 0);
}
TEST_F(ZippedBugreportGenerationTest, Is3MBto30MBinSize) {
struct stat st;
- EXPECT_EQ(stat(getZipFilePath(), &st), 0);
+ EXPECT_EQ(stat(getZipFilePath().c_str(), &st), 0);
EXPECT_GE(st.st_size, 3000000 /* 3MB */);
EXPECT_LE(st.st_size, 30000000 /* 30MB */);
}
@@ -250,7 +250,7 @@
public:
ZipArchiveHandle handle;
void SetUp() {
- ASSERT_EQ(OpenArchive(ZippedBugreportGenerationTest::getZipFilePath(), &handle), 0);
+ ASSERT_EQ(OpenArchive(ZippedBugreportGenerationTest::getZipFilePath().c_str(), &handle), 0);
}
void TearDown() {
CloseArchive(handle);
@@ -314,7 +314,7 @@
class BugreportSectionTest : public Test {
public:
static void SetUpTestCase() {
- ParseSections(ZippedBugreportGenerationTest::getZipFilePath(),
+ ParseSections(ZippedBugreportGenerationTest::getZipFilePath().c_str(),
ZippedBugreportGenerationTest::sections.get());
}