Skip to content

Commit 240e2d9

Browse files
authored
Fixed federated_topic use after free (#332)
1 parent 923cc65 commit 240e2d9

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/client/federated_topic/impl/federated_write_session.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ TFederatedWriteSessionImpl::TFederatedWriteSessionImpl(
4343
, Log(Connections->GetLog())
4444
, ClientEventsQueue(std::make_shared<NTopic::TWriteSessionEventsQueue>(Settings))
4545
, BufferFreeSpace(Settings.MaxMemoryUsage_)
46+
, HasBeenClosed(NThreading::NewPromise())
4647
{
4748
}
4849

src/client/federated_topic/impl/federated_write_session.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,25 @@ class TFederatedWriteSessionImpl : public NTopic::TContinuationTokenIssuer,
6060
{
6161
Message.Data = Data;
6262
}
63+
64+
explicit TWrappedWriteMessage(const TWrappedWriteMessage& other)
65+
: Data(other.Data)
66+
, Message(other.Message)
67+
{
68+
Message.Data = Data;
69+
}
70+
71+
explicit TWrappedWriteMessage(TWrappedWriteMessage&& other)
72+
: Data(std::move(other.Data))
73+
, Message(std::move(other.Message))
74+
{
75+
Message.Data = Data;
76+
}
77+
78+
TWrappedWriteMessage& operator=(const TWrappedWriteMessage& other) = delete;
79+
TWrappedWriteMessage& operator=(TWrappedWriteMessage&& other) = delete;
80+
81+
~TWrappedWriteMessage() = default;
6382
};
6483

6584
private:

0 commit comments

Comments
 (0)