diff options
author | Mike Leach <mike.leach@linaro.org> | 2023-01-19 16:36:55 +0000 |
---|---|---|
committer | Mike Leach <mike.leach@linaro.org> | 2023-01-19 16:36:55 +0000 |
commit | fbfc558e0775a8c3085a4aefa0b6aaf8192749aa (patch) | |
tree | 4da18ef6624aceda5def3fcdde248179e226c4a1 | |
parent | f1afa1152da9bbcb201181f4ef53e4eba06c8215 (diff) | |
download | OpenCSD-fbfc558e0775a8c3085a4aefa0b6aaf8192749aa.tar.gz |
opencsd: etm4: Fix memory leak in mispredict handling. (github #52)
Mispredict handler was removing unneeded addresses between the mispredict
packet and the atom packet, without deleting the item afterwards.
Erase now also deletes the unwanted item.
Fixes issue #52 from github
Signed-off-by: Mike Leach <mike.leach@linaro.org>
-rw-r--r-- | decoder/source/etmv4/trc_etmv4_stack_elem.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/decoder/source/etmv4/trc_etmv4_stack_elem.cpp b/decoder/source/etmv4/trc_etmv4_stack_elem.cpp index 1207444..71888f7 100644 --- a/decoder/source/etmv4/trc_etmv4_stack_elem.cpp +++ b/decoder/source/etmv4/trc_etmv4_stack_elem.cpp @@ -172,6 +172,10 @@ void EtmV4P0Stack::erase_curr_from_front() erase_iter = m_iter; erase_iter--; m_P0_stack.erase(erase_iter); + + // explicitly delete the item here as the caller can no longer reference it. + // fixes memory leak from github issue #52 + delete *erase_iter; } |