diff --git a/src/ringdht/p2p.cpp b/src/ringdht/p2p.cpp
index 2180a3214d3ab40645a6ad8bf7e186010b8eb0d7..e1f30c5963b390d62b316f4c327bcd2e4233861a 100644
--- a/src/ringdht/p2p.cpp
+++ b/src/ringdht/p2p.cpp
@@ -129,6 +129,7 @@ struct CtrlMsgBase
 {
     CtrlMsgBase() = delete;
     explicit CtrlMsgBase(CtrlMsgType id) : id_ {id} {}
+    virtual ~CtrlMsgBase() = default;
     CtrlMsgType type() const noexcept { return id_; }
 private:
     const CtrlMsgType id_;