fixing overrelease and out-of-bounds write, fixes #13725

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2012-11-23 07:55:58 +00:00
parent 40aa1a7e60
commit 77c8efc8c3

View File

@@ -926,7 +926,8 @@ outlineView:(NSOutlineView*)outlineView
size_t const dataSize = event.GetDataObject()->GetDataSize(idDataFormat);
size_t const dataBufferSize = sizeof(wxDataFormatId)+dataSize;
// variable definitions (used in all case statements):
wxMemoryBuffer dataBuffer(dataBufferSize);
// give additional headroom for trailing NULL
wxMemoryBuffer dataBuffer(dataBufferSize+4);
dataBuffer.AppendData(&idDataFormat,sizeof(wxDataFormatId));
switch (idDataFormat)
@@ -958,7 +959,6 @@ outlineView:(NSOutlineView*)outlineView
break;
default:
wxFAIL_MSG("Data object has invalid or unsupported data format");
[dataArray release];
return NO;
}
}
@@ -976,7 +976,6 @@ outlineView:(NSOutlineView*)outlineView
}
else
{
[dataArray release];
delete itemObject;
return NO; // dragging was vetoed or no data available
}