Opened 19 years ago
Closed 18 years ago
#189 closed Bugs (Fixed)
tss::set(0) leads to double-free
Reported by: | perfecthash | Owned by: | bill_kempf |
---|---|---|---|
Milestone: | Component: | None | |
Version: | None | Severity: | |
Keywords: | Cc: |
Description
This bug only occurs on non-pthreads platforms such as Win32 where no automatic destructor is available. I declared a variable: boost::thread_specific_ptr<X> pX; and initialized it: pX.reset(new X); Later, I did pX.reset(); Subsequently, when pX went out of scope, it tried to delete the X instance again. It's easy to see why. tss::set checks if (value && m_cleanup) { update cleanup handler table } So if value is NULL, the original cleanup handler is left lying around.
Note:
See TracTickets
for help on using tickets.