A NOTE has been added to this issue. ====================================================================== https://www.austingroupbugs.net/view.php?id=251 ====================================================================== Reported By: dwheeler Assigned To: ajosey ====================================================================== Project: 1003.1(2008)/Issue 7 Issue ID: 251 Category: Base Definitions and Headers Type: Enhancement Request Severity: Objection Priority: normal Status: Under Review Name: David A. Wheeler Organization: User Reference: Section: XBD 3.170 Filename Page Number: 60 Line Number: 1781 Interp Status: --- Final Accepted Text: ====================================================================== Date Submitted: 2010-05-03 18:49 UTC Last Modified: 2023-09-21 19:02 UTC ====================================================================== Summary: Forbid newline, or even bytes 1 through 31 (inclusive), in filenames ====================================================================== Relationships ID Summary ---------------------------------------------------------------------- related to 0000293 restricting readdir normalization of fi... related to 0000573 Please add '+' to the portable filename... related to 0000243 Add -print0 to "find" related to 0000244 Add -0 to xargs related to 0000245 Add -0 option to shell's "read" has duplicate 0000545 Escape Filenames as per Uniform Resourc... related to 0000291 filenames need not contain characters ======================================================================
---------------------------------------------------------------------- (0006484) eblake (manager) - 2023-09-21 19:02 https://www.austingroupbugs.net/view.php?id=251#c6484 ---------------------------------------------------------------------- Responding to https://www.austingroupbugs.net/view.php?id=251#c6481 > If we can accept that filenames cannot (in general) be interpreted as characters, then we cannot really attempt to name a bunch of characters, or even just one of them, and disallow it. That's absurd. Further, if the character newline is forbidden, what does that mean in a locale where 2 byte encoding of characters is in use, and one of the bytes in some of the characters happens to have the binary value 10? None of those characters is a newline, but when interpreted byte by byte it looks as if there are newlines in the path. POSIX XBD 6.1 (in issue 8 draft 3 at page 119; in issue 7-tc3 2017 edition at page 127, but not in the 2008 edition) already says that <slash> and <newline> MUST be single-byte characters with invariant values across all possible viable locales in the implementation. You are right that some portable characters (such as 'A' or '\') have an encoding which also occurs as a tail byte in certain multibyte sequences of some encodings (Big5, anyone?). But when we added these limitations on <slash> and <newline> in XBD 6.1 in one of the TCs to issue 7, no one could identify any common locale where a multibyte sequence could contain one of those bytes as an embedded byte of any larger multi-byte sequence. So your worries about mis-identifying a byte value of 10 as a newline in a different locale is impossible within POSIX. That said, maybe the wording in 6.1 could still be tweaked to be more explicit that the four special invariant characters (and maybe more: the recent discussions on bug:1649 about IFS could add <space> and <tab> to the list of characters that would be useful as invariants) also must not appear in the tail of any multibyte character. Issue History Date Modified Username Field Change ====================================================================== 2010-05-03 18:49 dwheeler New Issue 2010-05-03 18:49 dwheeler Status New => Under Review 2010-05-03 18:49 dwheeler Assigned To => ajosey 2010-05-03 18:49 dwheeler Name => David A. Wheeler 2010-05-03 18:49 dwheeler Section => XBD 3.170 Filename 2010-05-03 18:49 dwheeler Page Number => 60 2010-05-03 18:49 dwheeler Line Number => 1781 2010-05-03 19:37 dwheeler Note Added: 0000412 2011-03-10 16:04 msbrown Note Added: 0000689 2011-04-11 20:28 eblake Interp Status => --- 2011-04-11 20:28 eblake Note Added: 0000739 2011-04-11 20:28 eblake Summary Forbid bytes 1 through 31 (inclusive) in filenames => Forbid newline, or even bytes 1 through 31 (inclusive), in filenames 2011-04-11 21:17 dwheeler Note Added: 0000740 2011-07-07 15:31 user27 Note Added: 0000887 2011-12-17 21:43 dwheeler Issue Monitored: dwheeler 2012-02-22 06:48 oiaohm Note Added: 0001140 2012-02-22 19:25 dwheeler Note Added: 0001141 2012-02-22 19:38 wlerch Note Added: 0001142 2012-02-23 00:55 oiaohm Note Added: 0001143 2012-02-25 02:25 oiaohm Note Added: 0001147 2012-02-25 02:40 eblake Relationship added related to 0000545 2012-03-29 23:10 Don Cragun Relationship replaced has duplicate 0000545 2012-08-03 19:35 eblake Relationship added related to 0000291 2012-08-03 19:36 eblake Relationship added related to 0000293 2012-08-03 19:36 eblake Relationship added related to 0000573 2012-12-23 05:12 user229 Note Added: 0001437 2013-01-07 23:29 oiaohm Note Added: 0001438 2013-01-07 23:47 oiaohm Note Added: 0001439 2013-08-14 02:43 jrincayc Note Added: 0001711 2013-08-14 03:23 dwheeler Note Added: 0001712 2013-08-14 05:41 dalias Note Added: 0001713 2013-08-14 07:34 oiaohm Note Added: 0001714 2013-08-15 02:33 jrincayc Note Added: 0001715 2013-08-15 02:48 dalias Note Added: 0001716 2013-08-15 03:31 jrincayc Note Added: 0001717 2013-08-16 02:43 jrincayc Note Added: 0001721 2013-08-16 05:03 oiaohm Note Added: 0001722 2013-08-16 10:46 a brouwer Note Added: 0001723 2013-08-17 15:03 dwheeler Note Added: 0001724 2013-08-17 16:13 dalias Note Added: 0001725 2013-08-18 02:01 dwheeler Note Added: 0001726 2013-08-18 05:22 oiaohm Note Added: 0001727 2013-08-18 06:10 oiaohm Note Added: 0001728 2013-08-18 13:12 jrincayc Note Added: 0001730 2013-08-18 19:09 dwheeler Note Added: 0001731 2013-08-19 09:25 geoffclare Note Added: 0001732 2013-08-19 10:48 a brouwer Note Added: 0001733 2013-08-19 12:34 jrincayc Note Added: 0001734 2013-08-19 14:55 oiaohm Note Added: 0001735 2013-08-19 22:40 oiaohm Note Added: 0001736 2013-08-19 22:57 user229 Note Added: 0001737 2013-08-19 23:21 dalias Note Added: 0001738 2013-08-19 23:48 shware_systems Note Added: 0001739 2013-08-20 02:40 user229 Note Added: 0001740 2013-08-20 03:23 dalias Note Added: 0001741 2013-08-20 06:38 shware_systems Note Added: 0001742 2013-08-20 07:02 dalias Note Added: 0001743 2013-08-20 14:52 dwheeler Note Added: 0001744 2013-08-21 12:23 oiaohm Note Added: 0001745 2013-08-21 12:25 oiaohm Note Added: 0001746 2013-08-21 12:49 oiaohm Note Added: 0001747 2013-08-21 13:12 steffen Note Added: 0001748 2013-08-21 14:02 oiaohm Note Added: 0001749 2013-08-30 04:44 oiaohm Note Added: 0001779 2014-12-05 14:45 safinaskar Note Added: 0002480 2015-06-22 16:48 mirabilos Note Added: 0002730 2016-03-27 10:43 dannyniu Issue Monitored: dannyniu 2023-02-10 18:14 dwheeler Note Added: 0006146 2023-02-10 18:15 dwheeler Note Added: 0006147 2023-02-10 18:16 dwheeler Note Added: 0006148 2023-02-10 21:16 dwheeler Note Deleted: 0006147 2023-02-10 21:16 dwheeler Note Deleted: 0006148 2023-02-18 20:19 mirabilos Note Added: 0006154 2023-02-18 20:21 mirabilos Note Added: 0006155 2023-08-22 06:28 Don Cragun Relationship added related to 0000243 2023-08-22 06:29 Don Cragun Relationship added related to 0000244 2023-08-22 06:30 Don Cragun Relationship added related to 0000245 2023-09-20 16:17 kre Note Added: 0006481 2023-09-21 19:02 eblake Note Added: 0006484 ======================================================================