BIND 10 trac2836, updated. 5dc80a3df42d7725b56cc33d33249363a7a14279 [2836] Don't leak memory on exception
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed May 15 10:56:11 UTC 2013
The branch, trac2836 has been updated
via 5dc80a3df42d7725b56cc33d33249363a7a14279 (commit)
from b9c101fd307c164f7551d00068358828af4ed549 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5dc80a3df42d7725b56cc33d33249363a7a14279
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Wed May 15 12:55:20 2013 +0200
[2836] Don't leak memory on exception
If we throw an exception from the constructor, destructor is not called.
Call the clean-up manually there, so we don't leak memory.
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/memory/segment_object_holder.h | 4 ++++
1 file changed, 4 insertions(+)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/memory/segment_object_holder.h b/src/lib/datasrc/memory/segment_object_holder.h
index 923c1e4..91c7127 100644
--- a/src/lib/datasrc/memory/segment_object_holder.h
+++ b/src/lib/datasrc/memory/segment_object_holder.h
@@ -47,6 +47,10 @@ public:
holder_name_(getNextHolderName()), holding_(true)
{
if (mem_sgmt_.setNamedAddress(holder_name_.c_str(), NULL)) {
+ // OK. We've grown. The caller might need to be informed, so
+ // we throw. But then, we don't get our destructor, so we
+ // release the memory right away.
+ mem_sgmt_.clearNamedAddress(holder_name_.c_str());
isc_throw(isc::util::MemorySegmentGrown,
"Segment grown when allocating holder");
}
More information about the bind10-changes
mailing list