From bef5dd6507f2e8ac163941646ef9936d6ced3715 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Tue, 16 Apr 2019 10:43:09 -0400 Subject: [PATCH] Use delete [] on array types (#24027) Calling delete on types allocated with new[] leads to undefined behaviour. --- src/debug/di/process.cpp | 2 +- src/gc/gc.cpp | 2 +- src/ilasm/assembler.cpp | 4 ++-- src/inc/outstring.h | 2 +- src/vm/eventpipeeventsource.cpp | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/debug/di/process.cpp b/src/debug/di/process.cpp index 58c06a0..36b4b3a 100644 --- a/src/debug/di/process.cpp +++ b/src/debug/di/process.cpp @@ -7300,7 +7300,7 @@ HRESULT CordbProcess::WriteMemory(CORDB_ADDRESS address, DWORD size, if (bufferCopy != NULL) { memmove(buffer, bufferCopy, size); - delete bufferCopy; + delete [] bufferCopy; } } diff --git a/src/gc/gc.cpp b/src/gc/gc.cpp index d47f714..9e0356b 100644 --- a/src/gc/gc.cpp +++ b/src/gc/gc.cpp @@ -19305,7 +19305,7 @@ recheck: uint8_t** tmp = new (nothrow) uint8_t* [new_size]; if (tmp) { - delete background_mark_stack_array; + delete [] background_mark_stack_array; background_mark_stack_array = tmp; background_mark_stack_array_length = new_size; background_mark_stack_tos = background_mark_stack_array; diff --git a/src/ilasm/assembler.cpp b/src/ilasm/assembler.cpp index 93198a5..38d83d0 100644 --- a/src/ilasm/assembler.cpp +++ b/src/ilasm/assembler.cpp @@ -1780,7 +1780,7 @@ mdToken Assembler::MakeMemberRef(mdToken cr, __in __nullterminated char* pszMemb } } //if(m_fOBJ) m_pCurMethod->m_TRDList.PUSH(new TokenRelocDescr(m_CurPC,mr)); - delete pszMemberName; + delete [] pszMemberName; delete sig; } return mr; @@ -2164,7 +2164,7 @@ void Assembler::EmitBytes(BYTE *p, unsigned len) memcpy(pb,m_pOutputBuffer,m_CurPC); - delete m_pOutputBuffer; + delete [] m_pOutputBuffer; m_pOutputBuffer = pb; m_pCurOutputPos = &m_pOutputBuffer[m_CurPC]; m_pEndOutputPos = &m_pOutputBuffer[newlen]; diff --git a/src/inc/outstring.h b/src/inc/outstring.h index 5cf0236..167ef9a 100644 --- a/src/inc/outstring.h +++ b/src/inc/outstring.h @@ -36,7 +36,7 @@ public: end = &start[initialAlloc]; } - ~OutString() { delete start; } + ~OutString() { delete [] start; } // shortcut for printing decimal OutString& operator<<(int i) { return(dec(i)); } diff --git a/src/vm/eventpipeeventsource.cpp b/src/vm/eventpipeeventsource.cpp index ca62677..a993bf1 100644 --- a/src/vm/eventpipeeventsource.cpp +++ b/src/vm/eventpipeeventsource.cpp @@ -57,7 +57,7 @@ EventPipeEventSource::EventPipeEventSource() // Delete the metadata after the event is created. // The metadata blob will be copied into EventPipe-owned memory. - delete(pMetadata); + delete [] pMetadata; } EventPipeEventSource::~EventPipeEventSource() -- 2.7.4