-
Bug
-
Resolution: Fixed
-
P3
-
14
-
b20
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8264263 | 13.0.8 | Olga Mikhaltcova | P3 | Resolved | Fixed | b01 |
JDK-8243934 | 11.0.8-oracle | David Buck | P3 | Resolved | Fixed | b05 |
JDK-8244426 | 11.0.8 | David Buck | P3 | Resolved | Fixed | b03 |
The ParallelSPCleanupTask class has a SubTasksDone member _subtasks. The constructor for ParallelSPCleanupTask initializes that member in the initializer list to a freshly constructed rvalue SubTasksDone.
Fortunately, that extra SubTasksDone object is completely optimized away via RVO on most or all platforms, since SubTasksDone presently has a default copy constructor. Without the RVO optimization we'd have a double-free of the internal array in the SubTasksDone object that gets constructed by the normal constructor and deleted by the destructor. (SubTasksDone probably ought to be noncopyable; that would have prevented the problem code from compiling in the first place.)
Fortunately, that extra SubTasksDone object is completely optimized away via RVO on most or all platforms, since SubTasksDone presently has a default copy constructor. Without the RVO optimization we'd have a double-free of the internal array in the SubTasksDone object that gets constructed by the normal constructor and deleted by the destructor. (SubTasksDone probably ought to be noncopyable; that would have prevented the problem code from compiling in the first place.)
- backported by
-
JDK-8243934 Potential double-free in ParallelSPCleanupTask constructor
- Resolved
-
JDK-8244426 Potential double-free in ParallelSPCleanupTask constructor
- Resolved
-
JDK-8264263 Potential double-free in ParallelSPCleanupTask constructor
- Resolved
- relates to
-
JDK-8230611 infinite loop in LogOutputList::wait_until_no_readers()
- Resolved
-
JDK-8234779 Provide idiom for declaring classes noncopyable
- Resolved
(2 links to)