From: <pau...@us...> - 2016-01-26 17:43:57
|
Revision: 639 http://sourceforge.net/p/tdbf/code/639 Author: paulenandrew Date: 2016-01-26 17:43:55 +0000 (Tue, 26 Jan 2016) Log Message: ----------- fix potential Access Violation caused by heap corruption if there is a calculated field and SetKey is used Modified Paths: -------------- trunk/doc/history.txt trunk/src/dbf.pas Modified: trunk/doc/history.txt =================================================================== --- trunk/doc/history.txt 2015-11-25 13:57:07 UTC (rev 638) +++ trunk/doc/history.txt 2016-01-26 17:43:55 UTC (rev 639) @@ -33,6 +33,12 @@ ------------------------ +V7.0.2 + +following changes thx paulenandrew: +- fix potential Access Violation caused by heap corruption if there is a calculated field and SetKey is used + +------------------------ V7.0.1 following changes thx paulenandrew: Modified: trunk/src/dbf.pas =================================================================== --- trunk/src/dbf.pas 2015-11-25 13:57:07 UTC (rev 638) +++ trunk/src/dbf.pas 2016-01-26 17:43:55 UTC (rev 639) @@ -741,7 +741,7 @@ function TDbf.AllocRecordBuffer: TDbfRecordBuffer; {override virtual abstract from TDataset} begin - GetMem(Result, SizeOf(TDbfRecordHeader)+FDbfFile.RecordSize+CalcFieldsSize+1); + GetMem(Result, SizeOf(TDbfRecordHeader) + RecordSize + CalcFieldsSize + 1); end; procedure TDbf.FreeRecordBuffer(var Buffer: TDbfRecordBuffer); {override virtual abstract from TDataset} @@ -3399,7 +3399,7 @@ var Len: Integer; begin - Len := SizeOf(TDbfRecordHeader) + RecordSize; + Len := SizeOf(TDbfRecordHeader) + RecordSize + CalcFieldsSize + 1; if (FKeyBuffer = nil) then GetMem(FKeyBuffer, Len) else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |