[Lldb-commits] [PATCH] D88247: Fix memory leak in SBValue::GetAddress
Andy Yankovsky via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Sep 24 10:04:42 PDT 2020
werat created this revision.
werat added a reviewer: labath.
werat added a project: LLDB.
Herald added subscribers: lldb-commits, JDevlieghere.
Herald added a reviewer: JDevlieghere.
werat requested review of this revision.
SBAddress constructor accepts a pointer to `lldb_private::Address`, but then dereferences it and copies the value. Allocating a temporary here leads to a memory leak.
Found via ASan:
Direct leak of 24 byte(s) in 1 object(s) allocated from:
#0 0x7fc70451e19f in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10919f)
#1 0x7fc6fdb560b4 in lldb::SBValue::GetAddress() /home/werat/git/llvm-project-upstream/lldb/source/API/SBValue.cpp:1359
#2 0x7fc6fdb06714 in lldb::SBType::operator=(lldb::SBType const&) /home/werat/git/llvm-project-upstream/lldb/source/API/SBType.cpp:83
...
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D88247
Files:
lldb/source/API/SBValue.cpp
Index: lldb/source/API/SBValue.cpp
===================================================================
--- lldb/source/API/SBValue.cpp
+++ lldb/source/API/SBValue.cpp
@@ -1356,7 +1356,7 @@
}
}
- return LLDB_RECORD_RESULT(SBAddress(new Address(addr)));
+ return LLDB_RECORD_RESULT(SBAddress(&addr));
}
lldb::SBData SBValue::GetPointeeData(uint32_t item_idx, uint32_t item_count) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88247.294101.patch
Type: text/x-patch
Size: 396 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200924/d85896fe/attachment.bin>
More information about the lldb-commits
mailing list