Skip to content

Commit f656e74

Browse files
authored
Fix memory leak in sign_tool.cpp (#971)
Ownership of the parser is transferred from measure_enclave() to load_enclave(). load_enclave() passes the parser by reference to the CLoader constructor. CLoader cannot be responsible for deleting the parser. The parser must be deleted at the end of load_enclave(). Signed-off-by: Michael Spiegel <michael.m.spiegel@gmail.com>
1 parent f47d0e5 commit f656e74

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

sdk/sign_tool/SignTool/sign_tool.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,9 @@ typedef enum _file_path_t
100100
static int load_enclave(BinParser *parser, metadata_t *metadata)
101101
{
102102
std::unique_ptr<CLoader> ploader(new CLoader(const_cast<uint8_t *>(parser->get_start_addr()), *parser));
103-
return ploader->load_enclave_ex(NULL, 0, metadata, NULL, 0, NULL);
103+
int ret = ploader->load_enclave_ex(NULL, 0, metadata, NULL, 0, NULL);
104+
delete parser;
105+
return ret;
104106
}
105107

106108

0 commit comments

Comments
 (0)