Page MenuHomePhabricator

Implements a virtual destructor on the BaseRequestHandler class.
ClosedPublic

Authored by Fabien on Jul 9 2019, 07:22.

Details

Summary
Implements a virtual destructor on the BaseRequestHandler class to
protect against undefined behavior in the event that a derived
BaseRequestHandler class has a destructor and an object of such derived
class is destroyed through a pointer to its base class.

Backport of core PR12050
https://github.com/bitcoin/bitcoin/pull/12050/files

Note: the event described above actually occurs.

Test Plan

Build with Clang and check there is no -Wdelete-non-virtual-dtor
warning.

With ASAN enabled:

./test/functional/test_runner.py interface_bitcoin_cli

Diff Detail

Repository
rABC Bitcoin ABC
Branch
PR12050
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 6752
Build 11551: Bitcoin ABC Buildbot (legacy)
Build 11550: arc lint + arc unit

Event Timeline

It's actually a good idea to build with -Wdelete-non-virtual-dtor if the compiler supports it.

This revision is now accepted and ready to land.Jul 9 2019, 12:17