diff toys/posix/expand.c @ 1342:3b85d2ce34aa draft

When locale is enabled, sprintf("%.123s", str) is counting characters, not bytes, so we can't globally enable locale without opening stack/heap smashing vulnerabilities. Make commands individually request setlocale() using TOYFLAGS instead.
author Rob Landley <rob@landley.net>
date Mon, 09 Jun 2014 05:51:04 -0500
parents ed2694ccf2ae
children
line wrap: on
line diff
--- a/toys/posix/expand.c	Sun Jun 08 17:05:10 2014 -0500
+++ b/toys/posix/expand.c	Mon Jun 09 05:51:04 2014 -0500
@@ -4,7 +4,7 @@
  *
  * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/expand.html
 
-USE_EXPAND(NEWTOY(expand, "t*", TOYFLAG_USR|TOYFLAG_BIN))
+USE_EXPAND(NEWTOY(expand, "t*", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE))
 
 config EXPAND
   bool "expand"