On Thu, 23 Jul 2009, vszak...@users.sourceforge.net wrote:
2009-07-23 20:18 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/rddads/ads1.c
! Fixed buffer size in one place related to MEMO field handling.
Caused memory corruption.
Viktor, the code was correct and you've just added one unnecessary
byte
in allocation.
Please revert it and if possible add additional error checking, i.e.:
u32Len++; /* make room for NULL */
pucBuf = ( UNSIGNED8 * ) hb_xgrab( u32Len );
ulRetVal = AdsGetBinary( pArea->hTable, ADSFIELD( uiIndex ), 0,
pucBuf, &u32Len );
if( ulRetVal != AE_SUCCESS )
{
hb_xfree( pucBuf );
hb_itemPutC( pItem, NULL );
}
else
hb_itemPutCLPtr( pItem, ( char * ) pucBuf, u32Len );
Thanks. Tricky one.
Brgds,
Viktor
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour