diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f6dbc9d2b3..5b27740ea0 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,23 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-11-04 19:32 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * make_gcc.mak + * contrib/mtpl_gcc.mak + + Added '-march=i586' for Windows platform. + (Sync with other make systems.) + + * ChangeLog + + Some changes marked as TOMERGE 1.0. + + * contrib/hbtip/base64x.c + ! Fixed and ages old problem with BUILDUSERPASSSTRING() + function, which always returned an empty string thus + making "AUTH PLAIN" broken. I wonder how this went + unnoticed for this long. + This also fixes unsafe strcpy() usage. + [TOMERGE 1.0] + 2008-11-04 17:28 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/hvm.c * harbour/source/vm/mainstd.c @@ -40,7 +57,7 @@ ESWIN - Modern CP: Windows-1252 ESISO - Modern CP: ISO-8859-1 ESMWIN - Compatibility with previous Harbour versions and xhb. - (this collation has wrong linkage, so everyone is + (this collation has wrong CP linkage, so everyone is encouraged to use ESWIN or ESISO instead.) Intentionally not added to hbextern.ch. ; TODO: Add ES850. @@ -52,6 +69,7 @@ * contrib/hbhpdf/make_gcc.sh ! Fixed missing quote char. + [TOMERGE 1.0] * contrib/mtpl_gcc.mak ! Fixed to create its own OBJ dir. Not the ultimate diff --git a/harbour/contrib/hbtip/base64x.c b/harbour/contrib/hbtip/base64x.c index eaaf4967bb..63d9b6843e 100644 --- a/harbour/contrib/hbtip/base64x.c +++ b/harbour/contrib/hbtip/base64x.c @@ -110,18 +110,18 @@ static char * base64enc( char *s, size_t s_len ) HB_FUNC( BUILDUSERPASSSTRING ) { - char * s; char * szUser = hb_parcx( 1 ); char * szPass = hb_parcx( 2 ); size_t p_len = strlen( szPass ); size_t u_len = strlen( szUser ); + char * s = ( char * ) hb_xgrab( u_len + p_len + 3 ); - s = ( char * ) hb_xgrab( ( u_len + p_len + 3 ) * sizeof( char ) ); - s[0] = '\0'; - strcpy( s + 1, szUser ); - strcpy( s + u_len + 2, szPass ); + s[ 0 ] = '\0'; + memcpy( s + 1, szUser, u_len ); + s[ u_len + 1 ] = '\0'; + memcpy( s + u_len + 2, szPass, p_len ); - hb_retc_buffer( s ); + hb_retclen_buffer( s, u_len + p_len + 2 ); } HB_FUNC( HB_BASE64 ) diff --git a/harbour/contrib/mtpl_gcc.mak b/harbour/contrib/mtpl_gcc.mak index 86fd3d191b..03153ef4ed 100644 --- a/harbour/contrib/mtpl_gcc.mak +++ b/harbour/contrib/mtpl_gcc.mak @@ -115,6 +115,9 @@ endif # C Compiler Flags ifndef GCC_NOOPTIM +ifeq ($(HB_ARCHITECTURE),w32) +CFLAGS := -march=i586 $(CFLAGS) +endif CFLAGS := -O3 $(CFLAGS) endif diff --git a/harbour/make_gcc.mak b/harbour/make_gcc.mak index 63793c980b..68614794dc 100644 --- a/harbour/make_gcc.mak +++ b/harbour/make_gcc.mak @@ -150,6 +150,9 @@ CFLAGS := -W -Wall -I$(INCLUDE_DIR) $(C_USR) -I$(OBJ_DIR) CFLAGSMT := -DHB_MT_VM #----------- ifndef GCC_NOOPTIM +ifeq ($(HB_ARCHITECTURE),w32) +CFLAGS := -march=i586 $(CFLAGS) +endif CFLAGS := -O3 $(CFLAGS) endif #-----------