ChangeSet ID: 21603 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/12/01 11:15:29
Modified files: programs/wcmd : builtins.c wcmdmain.c
Log message: Rein Klazes wijn@wanadoo.nl Don't use formatted output in WCMD_setshow_sortenv. Don't use unsafe vsprintf in WCMD_output.
Patch: http://cvs.winehq.org/patch.py?id=21603
Old revision New revision Changes Path 1.30 1.31 +4 -2 wine/programs/wcmd/builtins.c 1.48 1.49 +6 -1 wine/programs/wcmd/wcmdmain.c
Index: wine/programs/wcmd/builtins.c diff -u -p wine/programs/wcmd/builtins.c:1.30 wine/programs/wcmd/builtins.c:1.31 --- wine/programs/wcmd/builtins.c:1.30 1 Dec 2005 17:15:29 -0000 +++ wine/programs/wcmd/builtins.c 1 Dec 2005 17:15:29 -0000 @@ -792,8 +792,10 @@ static void WCMD_setshow_sortenv(const c qsort( str, count, sizeof (char*), WCMD_compare );
/* print it */ - for( i=0; i<count; i++ ) - WCMD_output("%s\n", str[i] ); + for( i=0; i<count; i++ ) { + WCMD_output_asis(str[i]); + WCMD_output_asis("\n"); + }
LocalFree( str ); } Index: wine/programs/wcmd/wcmdmain.c diff -u -p wine/programs/wcmd/wcmdmain.c:1.48 wine/programs/wcmd/wcmdmain.c:1.49 --- wine/programs/wcmd/wcmdmain.c:1.48 1 Dec 2005 17:15:29 -0000 +++ wine/programs/wcmd/wcmdmain.c 1 Dec 2005 17:15:29 -0000 @@ -789,10 +789,15 @@ void WCMD_output (const char *format, ..
va_list ap; char string[1024]; +int ret;
va_start(ap,format); - vsprintf (string, format, ap); + ret = vsnprintf (string, sizeof( string), format, ap); va_end(ap); + if( ret >= sizeof( string)) { + WCMD_output_asis("ERR: output truncated in WCMD_output\n" ); + string[sizeof( string) -1] = '\0'; + } WCMD_output_asis(string); }