From 6f25ab158dfee2bf591010af4104b6b59bd86349 Mon Sep 17 00:00:00 2001 From: Andy Taylor Date: Tue, 9 Sep 2025 00:26:59 +0100 Subject: [PATCH] Fix free(): double free detected in tcache --- .vscode/settings.json | 6 ++++++ DStarHeader.cpp | 10 ++-------- DStarHeader.h | 4 +++- 3 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..fa7d551 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "*.embeddedhtml": "html", + "cstring": "cpp" + } +} \ No newline at end of file diff --git a/DStarHeader.cpp b/DStarHeader.cpp index 9c600bd..3316d35 100644 --- a/DStarHeader.cpp +++ b/DStarHeader.cpp @@ -25,20 +25,15 @@ #include CDStarHeader::CDStarHeader(const unsigned char* header) : -m_header(nullptr) +m_header() { assert(header != nullptr); - - m_header = new unsigned char[DSTAR_HEADER_LENGTH_BYTES]; - ::memcpy(m_header, header, DSTAR_HEADER_LENGTH_BYTES); } CDStarHeader::CDStarHeader() : -m_header(nullptr) +m_header() { - m_header = new unsigned char[DSTAR_HEADER_LENGTH_BYTES]; - ::memset(m_header, ' ', DSTAR_HEADER_LENGTH_BYTES); m_header[0U] = 0x00U; @@ -48,7 +43,6 @@ m_header(nullptr) CDStarHeader::~CDStarHeader() { - delete[] m_header; } CDStarHeader& CDStarHeader::operator=(const CDStarHeader& header) diff --git a/DStarHeader.h b/DStarHeader.h index 867f1da..838cc7d 100644 --- a/DStarHeader.h +++ b/DStarHeader.h @@ -19,6 +19,8 @@ #ifndef DStarHeader_H #define DStarHeader_H +#include "DStarDefines.h" + class CDStarHeader { public: CDStarHeader(const unsigned char* header); @@ -52,7 +54,7 @@ public: CDStarHeader& operator=(const CDStarHeader& header); private: - unsigned char* m_header; + unsigned char m_header[DSTAR_HEADER_LENGTH_BYTES]; }; #endif