Don't use formatted output in WCMD_setshow_sortenv.
Don't use unsafe vsprintf in WCMD_output.
diff --git a/programs/wcmd/builtins.c b/programs/wcmd/builtins.c
index 0d1a259..394a9bc 100644
--- a/programs/wcmd/builtins.c
+++ b/programs/wcmd/builtins.c
@@ -792,8 +792,10 @@
   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 );
 }
diff --git a/programs/wcmd/wcmdmain.c b/programs/wcmd/wcmdmain.c
index e61423e..0a008a4 100644
--- a/programs/wcmd/wcmdmain.c
+++ b/programs/wcmd/wcmdmain.c
@@ -789,10 +789,15 @@
 
 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);
 }