On Thu, 14 May 2009, Luis Krause Mantilla wrote:

Hi,

> The Harbour list claims there's a bug recently introduced
> to rddads.   Char fields larger than 23 display one extra
> char at the end.  I can't try the latest xharbour from cvs
> but with ads1.c v. 1.140 there aren't any problems.

The bug is not recently introduced.
It has been existing for years because was hidden by someone who disabled
checking for AE_SUCCESS value returned by AdsGet*() functions and hardcoded
the size of returned value to maximum size of declared field ignoring real
size returned by ADS.
Recently it was was only exploited when I added support for varlangth fields
for which is necessary to check the real size and now it's fixed by:

2009-05-14 19:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
  * harbour/contrib/rddads/ads1.c
    ! fixed minimal record buffer size calculation
    ! fixed adsGetValue() method hacked to not report errors due to too
      small field buffer.
      Warning! Now ADS RDD will report any error as RTE if sth wrong
      will happen in one of AdsGet*() function when field is read so
      it's possible that also some other hidden bugs will be exploited
      and you will see RTE. Please test it.

Looks that the ChangeLog message was not delivered yet to Harbour
mailing list yet.

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to