Skip to content

Commit c9b055f

Browse files
committed
Fix: memory leak in PacketReader / Writer
The leak occurred because of missing virtual destructors
1 parent 902fdba commit c9b055f

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

deps/libencryptmsg/src/packet_reader.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ namespace LibEncryptMsg
2828
public:
2929
PacketRWBase(SessionState &state, bool is_final_packet)
3030
:state_(state), is_final_packet_(is_final_packet){}
31+
32+
virtual ~PacketRWBase(){}
33+
PacketRWBase(const PacketRWBase&) = delete;
34+
PacketRWBase &operator=(const PacketRWBase&) = delete;
35+
3136
// Reads packet body and writes its payload while setting metadata_out fields
3237
// Payload is the contained packets or empty if there are no packets inside
3338
EmsgResult Read(OutStream &out)

deps/libencryptmsg/src/packet_writer.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ namespace LibEncryptMsg
2121
void Write(OutStream &out);
2222
void Finish(OutStream &out);
2323
InBufferStream &GetInStream();
24+
25+
virtual ~PacketWriter(){}
26+
PacketWriter(const PacketWriter&) = delete;
27+
PacketWriter &operator=(const PacketWriter&) = delete;
28+
2429
protected:
2530
InBufferStream in_;
2631
InBufferStream out_;

0 commit comments

Comments
 (0)