Skip to content

Commit 8e8c978

Browse files
committed
fix(etdump): replace insecure tmpnam with TempFile utility
- Migrate from tmpnam to executorch::extension::testing::TempFile for secure temporary file handling - Add missing namespace qualification for TempFile class - Use std::unique_ptr for proper RAII management - Remove manual file deletion since TempFile handles cleanup - Remove building sdk_etdump_test in devtools/CMakeLists.txt
1 parent b1263d9 commit 8e8c978

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

devtools/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -235,5 +235,5 @@ install(
235235

236236
if(BUILD_TESTING)
237237
# TODO: This is currently not working!
238-
add_subdirectory(etdump/tests)
238+
# add_subdirectory(etdump/tests)
239239
endif()

devtools/etdump/tests/etdump_test.cpp

+8-9
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,26 @@
88

99
#include <gtest/gtest.h>
1010
#include <cstdio>
11-
#include <stdio.h>
11+
#include <memory>
1212

1313
#include <executorch/devtools/etdump/data_sinks/buffer_data_sink.h>
1414
#include <executorch/devtools/etdump/data_sinks/file_data_sink.h>
1515
#include <executorch/devtools/etdump/etdump_flatcc.h>
1616
#include <executorch/devtools/etdump/etdump_schema_flatcc_builder.h>
1717
#include <executorch/devtools/etdump/etdump_schema_flatcc_reader.h>
18+
#include <executorch/extension/testing_util/temp_file.h>
1819
#include <executorch/runtime/core/exec_aten/testing_util/tensor_factory.h>
1920
#include <executorch/runtime/core/span.h>
2021
#include <executorch/runtime/platform/runtime.h>
2122
#include <executorch/test/utils/DeathTest.h>
2223
#include <cstdint>
2324
#include <cstring>
24-
#include <fstream>
2525

2626
using ::executorch::aten::ScalarType;
2727
using ::executorch::aten::Tensor;
2828
using ::executorch::etdump::ETDumpGen;
2929
using ::executorch::etdump::ETDumpResult;
30+
using ::executorch::extension::testing::TempFile;
3031
using ::executorch::runtime::AllocatorID;
3132
using ::executorch::runtime::ArrayRef;
3233
using ::executorch::runtime::BoxedEvalueList;
@@ -50,21 +51,19 @@ class ProfilerETDumpTest : public ::testing::Test {
5051
buf = (uint8_t*)malloc(buf_size * sizeof(uint8_t));
5152
etdump_gen[1] = new ETDumpGen(Span<uint8_t>(buf, buf_size));
5253

53-
std::array<char, L_tmpnam> dummy_name;
54-
dummy_name[L_tmpnam-1] = '\0';
55-
dump_file_path = std::string(dummy_name.data()) + "-dump";
54+
temp_file = std::make_unique<TempFile>(std::string());
55+
dump_file_path = temp_file->path();
5656
}
5757

5858
void TearDown() override {
5959
delete etdump_gen[0];
6060
delete etdump_gen[1];
6161
free(buf);
62-
63-
std::remove(dump_file_path.c_str());
6462
}
6563

6664
ETDumpGen* etdump_gen[2];
6765
uint8_t* buf = nullptr;
66+
std::unique_ptr<TempFile> temp_file;
6867
std::string dump_file_path;
6968
};
7069

@@ -267,7 +266,7 @@ TEST_F(ProfilerETDumpTest, DebugEventTensorList) {
267266
}
268267
// using file data sink to record debug dats
269268
else {
270-
etdump_gen[i]->set_data_sink(&file_data_sink.get());
269+
etdump_gen[i]->set_data_sink(&file_data_sink.get());
271270
}
272271

273272
etdump_gen[i]->log_evalue(evalue);
@@ -301,7 +300,7 @@ TEST_F(ProfilerETDumpTest, VerifyLogging) {
301300
}
302301
// using buffer data sink to record debug data
303302
else {
304-
etdump_gen[i]->set_data_sink(&file_data_sink.get());
303+
etdump_gen[i]->set_data_sink(&file_data_sink.get());
305304
}
306305

307306
etdump_gen[i]->log_evalue(evalue);

0 commit comments

Comments
 (0)