1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-07-29 03:41:11 +03:00

remove virtual destructor in quic::PriorityQueue::Priority

Summary:
fix for OSS issue reported in https://github.com/facebook/mvfst/issues/382

UndefinedBehaviorSanitizer: dynamic-type-mismatch buck-out/v2/gen/fbcode/12f4c1ea6c843aab/quic/priority/__http_priority_queue__/buck-headers/quic/priority/HTTPPriorityQueue.h:133:9
buck-out/v2/gen/fbcode/12f4c1ea6c843aab/quic/priority/__http_priority_queue__/buck-headers/quic/priority/HTTPPriorityQueue.h:76:23: runtime error: member call on address 0x51a0000026b8 which does not point to an object of type 'quic::HTTPPriorityQueue::Priority'
0x51a0000026b8: note: object is of type 'quic::PriorityQueue::Priority'
 be be be be  10 1b 13 02 00 00 00 00  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'quic::PriorityQueue::Priority'
    #0 0x000000e36302 in quic::HTTPPriorityQueue::Priority::operator==(quic::HTTPPriorityQueue::Priority const&) const fbcode/quic/priority/HTTPPriorityQueue.h:76
```

Reviewed By: mjoras

Differential Revision: D73674107

fbshipit-source-id: 4934e404cf6298d6351d4b45f676a8a83838f91f
This commit is contained in:
Hani Damlaj
2025-04-27 23:08:16 -07:00
committed by Facebook GitHub Bot
parent b49e49ed1b
commit 6a52a365ab
3 changed files with 24 additions and 20 deletions

View File

@ -13,6 +13,23 @@ constexpr size_t kDestroyIndexThreshold = 50;
} // namespace
namespace quic {
/*implicit*/ HTTPPriorityQueue::Priority::Priority(
const PriorityQueue::Priority& basePriority)
: PriorityQueue::Priority(basePriority) {
if (!isInitialized()) {
getFields() = kDefaultPriority;
}
}
HTTPPriorityQueue::Priority::Priority(uint8_t u, bool i, OrderId o) {
auto& fields = getFields();
fields.urgency = u;
fields.incremental = i;
fields.order = (i ? 0 : o);
fields.paused = false;
}
PriorityQueue::PriorityLogFields HTTPPriorityQueue::toLogFields(
const PriorityQueue::Priority& pri) const {
// This is defined by the QLOG schema