Use delete [] on array types (#24027)
authorOmair Majid <omajid@redhat.com>
Tue, 16 Apr 2019 14:43:09 +0000 (10:43 -0400)
committerJan Kotas <jkotas@microsoft.com>
Tue, 16 Apr 2019 14:43:09 +0000 (07:43 -0700)
Calling delete on types allocated with new[] leads to undefined
behaviour.

src/debug/di/process.cpp
src/gc/gc.cpp
src/ilasm/assembler.cpp
src/inc/outstring.h
src/vm/eventpipeeventsource.cpp

index 58c06a0..36b4b3a 100644 (file)
@@ -7300,7 +7300,7 @@ HRESULT CordbProcess::WriteMemory(CORDB_ADDRESS address, DWORD size,
         if (bufferCopy != NULL)
         {
             memmove(buffer, bufferCopy, size);
-            delete bufferCopy;
+            delete [] bufferCopy;
         }
     }
 
index d47f714..9e0356b 100644 (file)
@@ -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;
index 93198a5..38d83d0 100644 (file)
@@ -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];
index 5cf0236..167ef9a 100644 (file)
@@ -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)); }
index ca62677..a993bf1 100644 (file)
@@ -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()