There is nothing wrong with your television set. Do not attempt to adjust the picture.
4 Jun 2008
A memory overwrite bug has been identified in the
TDropFileTarget components of the Drag and Drop Component Suite. The bug only manifests itself when support for Unicode filenames is enabled - even if Unicode filenames aren’t used explicitly. Unicode filenames are enabled with Delphi 2006 and later.
The memory overwrite is caused by an incorrect cast in the constructor of the
TFileDataFormat is used internally by components that support drag or drop of files, namely the
The offending code casts a
TWideStringList object to a
TStringList and sets a property that only exists on the
constructor TFileDataFormat.Create(AOwner: TDragDropComponent); begin inherited Create(AOwner); FFiles := TWideStringList.Create; TStringList(FFiles).OnChanging := DoOnChanging; end;
Since the relative offset of the
TStringList.OnChanging property is beyond the size of a
TWideStringList object, the result is that random memory is being overwritten.
The bug causes a memory overwrite and the exact symptoms will depend on the current memory layout. Common symptoms are Out of Memory, Access Violation and Stack Overflow errors. The error will most like occur when the components are being constructed. For example when a form, that contains one of the affected components, is created.
If the application is compiled with FastMM in debug mode, FastMM should be able to detect the memory overwrite.
To avoid the bug, support for Unicode filenames must be disabled. This is best done by disabling or deleting the following line in the
DragDrop.inc include file:
The problem has already been fixed in the version 5 branch and a new snapshot will be posted as soon as possible.
For version 4.2 the fix is available as a hotfix. The fix will likely be rolled into a future version 4 release if time permits.
Note: This download only applies to the Drag and Drop Component Suite version 4.2.
|Download:||The Drag and Drop Component Suite - Hotfix 4.2.20080604|
|Updated:||4 June, 2008|
|Notes:||Hotfix for the Drag and Drop Component Suite version 4.2
Fixes a memory overwrite bug in TDropFileSource, TDropFileTarget a.o.
DropDropFile.pasinto the Drag and Drop Component Suite