BIND 10 trac957, updated. 1ff545f50926224d095e3809636c642219ea9078 [trac957] Added new ChangeLog entry

BIND 10 source code commits bind10-changes at lists.isc.org
Fri Jun 10 06:17:30 UTC 2011


The branch, trac957 has been updated
  discards  879663a28bd59692b3745f9e1851412a73872460 (commit)
  discards  8abc6698d085aeb474d705403f7b15c2e3505fc2 (commit)
       via  1ff545f50926224d095e3809636c642219ea9078 (commit)
       via  e47b0a39b7849489e6d9a167117ebb3be5eea4d4 (commit)
       via  3e1fae0b23d4df32f239e5aa1350e40557d8ada4 (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (879663a28bd59692b3745f9e1851412a73872460)
            \
             N -- N -- N (1ff545f50926224d095e3809636c642219ea9078)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

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 1ff545f50926224d095e3809636c642219ea9078
Author: Yoshitaka Aharen <aharen at jprs.co.jp>
Date:   Mon May 23 17:37:49 2011 +0900

    [trac957] Added new ChangeLog entry

commit e47b0a39b7849489e6d9a167117ebb3be5eea4d4
Author: Yoshitaka Aharen <aharen at jprs.co.jp>
Date:   Mon May 23 16:29:04 2011 +0900

    [trac957] Fixed the bug that destructIntervalTimer segfaults.
    
      - pass boost::shared_ptr of IntervalTimerImpl wrapped with boost::bind
        as a handler of asio::deadline_timer
      - use boost::shared_ptr to hold pImpl

commit 3e1fae0b23d4df32f239e5aa1350e40557d8ada4
Author: Yoshitaka Aharen <aharen at jprs.co.jp>
Date:   Fri Jun 10 15:05:10 2011 +0900

    [trac957] Add assertion check to detect use-after-free type of bugs

-----------------------------------------------------------------------

Summary of changes:
 src/lib/asiolink/interval_timer.cc |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/asiolink/interval_timer.cc b/src/lib/asiolink/interval_timer.cc
index 2830a3b..502bf80 100644
--- a/src/lib/asiolink/interval_timer.cc
+++ b/src/lib/asiolink/interval_timer.cc
@@ -59,14 +59,18 @@ private:
     long interval_;
     // asio timer
     asio::deadline_timer timer_;
+    // interval_ will be set to this value in destructor in order to detect
+    // use-after-free type of bugs.
+    static const long INVALIDATED_INTERVAL = -1;
 };
 
 IntervalTimerImpl::IntervalTimerImpl(IOService& io_service) :
     interval_(0), timer_(io_service.get_io_service())
 {}
 
-IntervalTimerImpl::~IntervalTimerImpl()
-{}
+IntervalTimerImpl::~IntervalTimerImpl() {
+    interval_ = INVALIDATED_INTERVAL;
+}
 
 void
 IntervalTimerImpl::setup(const IntervalTimer::Callback& cbfunc,
@@ -107,6 +111,7 @@ IntervalTimerImpl::update() {
 
 void
 IntervalTimerImpl::callback(const asio::error_code& ec) {
+    assert(interval_ != INVALIDATED_INTERVAL);
     if (interval_ == 0 || ec) {
         // timer has been canceled. Do nothing.
     } else {




More information about the bind10-changes mailing list