From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 81096c30 for ; Thu, 12 Nov 2015 16:50:33 -0500 (EST) Date: Thu, 12 Nov 2015 16:50:33 -0500 (EST) Message-Id: <562333476130167321.enqueue@fantadrom.bsd.lv> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Never use LC_ALL. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Never use LC_ALL. On the one hand, it can cause misformatting. On the other hand, it is a security risk because it might cause buffer overflows. Use LC_CTYPE only, that's all we need. Modified Files: -------------- mdocml: term_ascii.c Revision Data ------------- Index: term_ascii.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/term_ascii.c,v retrieving revision 1.51 retrieving revision 1.52 diff -Lterm_ascii.c -Lterm_ascii.c -u -p -r1.51 -r1.52 --- term_ascii.c +++ term_ascii.c @@ -88,8 +88,16 @@ ascii_init(enum termenc enc, const struc #if HAVE_WCHAR if (TERMENC_ASCII != enc) { + + /* + * Do not change any of this to LC_ALL. It might break + * the formatting by subtly changing the behaviour of + * various functions, for example strftime(3). As a + * worst case, it might even cause buffer overflows. + */ + v = TERMENC_LOCALE == enc ? - setlocale(LC_ALL, "") : + setlocale(LC_CTYPE, "") : setlocale(LC_CTYPE, "en_US.UTF-8"); if (NULL != v && MB_CUR_MAX > 1) { p->enc = enc; -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv