diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 282906e325..6ccc5143f3 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,17 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-11-04 19:59 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * contrib/hbnf/getenvrn.c + - Removed some obsolete comments. + + * contrib/hbwhat/whtlv.c + ! Fixed memory leak. + ! Fixed to use hb_strncpy() instead of unsafe lstrcpy(). + TOFIX: The destination address isn't properly allocated and the + size of it is unknown, so this modification is not enough. + ; TOFIX: Unicode conversion, buffer allocation for item.pszText. + 2008-11-04 19:32 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * make_gcc.mak * contrib/mtpl_gcc.mak diff --git a/harbour/contrib/hbnf/getenvrn.c b/harbour/contrib/hbnf/getenvrn.c index 96c3a41191..b8eb172a7b 100644 --- a/harbour/contrib/hbnf/getenvrn.c +++ b/harbour/contrib/hbnf/getenvrn.c @@ -66,10 +66,6 @@ * a snapshot of it to a file for later inspection, such as when a * program error occurs. If the value of ONE SPECIFIC variable is * desired, use Clipper's built-in GETE() function. - * - * This function uses the undocumented internal variable "_environ", - * as well as the functions _strcpy(), _strcat(), and _strlen() from - * CLIPPER.LIB * $EXAMPLES$ * Get the environment in text form and browse it: * @@ -117,16 +113,9 @@ extern char **_environ; #define CHARTYPE 1 #define ARRAYTYPE 2 #define CRLF "\x0D\x0A" -/* -unsigned int strlen( char * ); -char * strcpy( char *, char * ); -char * strcat( char *, char * ); -*/ + HB_FUNC( FT_GETE ) { - /* INTERNALS WARNING: All references to 'environ', strlen(), ; - strcpy(), and strcat() are undocumented Clipper 5.0 internals. - */ #if defined(HB_OS_DOS) || defined(HB_OS_UNIX_COMPATIBLE) { diff --git a/harbour/contrib/hbwhat/whtlv.c b/harbour/contrib/hbwhat/whtlv.c index 4011c24037..3f31bb7586 100644 --- a/harbour/contrib/hbwhat/whtlv.c +++ b/harbour/contrib/hbwhat/whtlv.c @@ -35,7 +35,7 @@ HB_FUNC( VWN_LISTVIEW_ENSUREVISIBLE ) HB_FUNC( VWN_LISTVIEW_INSERTCOLUMN ) { - LV_COLUMN *lvColumn = ( LV_COLUMN *) hb_parc( 3 ); //hb_param( 3, HB_IT_STRING )->item.asString.value ; + LV_COLUMN *lvColumn = ( LV_COLUMN *) hb_parc( 3 ); ( void ) ListView_InsertColumn( (HWND)HB_PARWH(1), hb_parni(2), lvColumn ); } @@ -85,8 +85,9 @@ HB_FUNC( VWN_LISTVIEWNOTIFY ) hb_vmPushString( cAlias,strlen(cAlias) ); hb_vmPushInteger( hb_parni(6) ); hb_vmDo( 6 ); - cRet=hb_itemGetC( hb_param( -1, HB_IT_ANY ) ); - lstrcpy(lpdi->item.pszText, cRet); + cRet = hb_itemGetCPtr( hb_param( -1, HB_IT_ANY ) ); + /* TOFIX: Unicode conversion, buffer allocation for item.pszText */ + hb_strncpy(lpdi->item.pszText, cRet, hb_itemGetCLen( hb_param( -1, HB_IT_ANY ) ) ); } } } @@ -110,8 +111,9 @@ HB_FUNC( VWN_LISTVIEWNOTIFY ) hb_vmPushString( cAlias,strlen(cAlias) ); hb_vmPushInteger( hb_parni(6) ); hb_vmDo( 6 ); - cRet=hb_itemGetC( hb_param( -1, HB_IT_ANY ) ); - lstrcpy(lpdi->item.pszText, cRet); + cRet = hb_itemGetCPtr( hb_param( -1, HB_IT_ANY ) ); + /* TOFIX: Unicode conversion, buffer allocation for item.pszText */ + hb_strncpy(lpdi->item.pszText, cRet, hb_itemGetCLen( hb_param( -1, HB_IT_ANY ) ) ); } } if(lpdi->item.mask & LVIF_IMAGE)