Fix free(): double free detected in tcache

This commit is contained in:
Andy Taylor 2025-09-09 00:26:59 +01:00
parent 28eb0e6200
commit 6f25ab158d
3 changed files with 11 additions and 9 deletions

6
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,6 @@
{
"files.associations": {
"*.embeddedhtml": "html",
"cstring": "cpp"
}
}

View file

@ -25,20 +25,15 @@
#include <cstring>
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)

View file

@ -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