BIND 10 #2024: Segfault in RecursiveQueryTest.v6UDPSendSpecific on Solaris (SPARC)
BIND 10 Development
do-not-reply at isc.org
Sun Jun 10 18:17:16 UTC 2012
#2024: Segfault in RecursiveQueryTest.v6UDPSendSpecific on Solaris (SPARC)
-------------------------------------+-------------------------------------
Reporter: muks | Owner: jinmei
Type: | Status: reviewing
defect | Milestone:
Priority: | Sprint-20120612
medium | Resolution:
Component: | Sensitive: 0
resolver | Sub-Project: DNS
Keywords: | Estimated Difficulty: 0
Defect Severity: N/A | Total Hours: 0
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Changes (by muks):
* owner: muks => jinmei
Comment:
Replying to [comment:3 jinmei]:
> The patch itself at least doesn't seem to be harmful, but it's not
> obvious to me what exactly happened in the original version and how
> this change solves it. Could you elaborate please?
In the following code:
{{{
io_service_.reset(new IOService());
callback_.reset(new ASIOCallBack(this));
dns_service_.reset(new DNSService(*io_service_, callback_.get(),
NULL,
NULL));
}}}
after the `io_service_.reset()`, the old `IOService object` is destroyed,
but it is still referenced and used inside `dns_service_` including during
its destruction (two lines below).
Destroying `dns_service_` first also causes this issue to go away.
{{{
+ dns_service_.reset(NULL);
io_service_.reset(new IOService());
callback_.reset(new ASIOCallBack(this));
dns_service_.reset(new DNSService(*io_service_, callback_.get(),
NULL,
NULL));
}}}
--
Ticket URL: <http://bind10.isc.org/ticket/2024#comment:5>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list