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-20 16:17 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 ======================================================================
---------------------------------------------------------------------- (0006481) kre (reporter) - 2023-09-20 16:17 https://www.austingroupbugs.net/view.php?id=251#c6481 ---------------------------------------------------------------------- I know I have ignored this issue, and much seems to have been decided before I was in any way involved, but IMO there's really no option available that is consistent with the rest of the system but to completely reject this bug. Filenames need to be considered as uninterpreted byte streams, just terminated with a \0 byte as that's how they're passed through the kernel interfaces. Even the use of '/' to separate directory components isn't essential (though the leading '/' is, to switch between relative and full path names). To be compatible with the various locales that POSIX allows, filenames simply cannot be interpreted as characters, as there's no guarantee anywhere, that a process attempting to access a file will be in the same locale as the one which created it. The accessing process can read the directory tree, and built the byte sequence needed to access the path name desired, even if that process has no idea how to represent any of that as characters. 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. It is fine to have what we do now, and demand that implementations support a fixed set of encoded characters as filename paths, so that portable applications can be sure of working anywhere, but that's as far as it is reasonable to take things. Had, 50 years ago, the original designers decided to adopt a more limited filename representation, or had unix systems followed plan9 and fully adopted UTF-8 as the one and only blessed encoding scheme, things might be different. But neither of those happened. We have been living with the effects of those decisions now for decades - and (despite the occasional badly written piece of code, or more frequently, script, showing up) we have been coping. Any implementation which feels like it isn't, is already allowed to restrict the filenames it supports. Most have not, for which there are plenty of reasons. Attempting to force those implementations to change, with the treat of making them non-conformant if they don't, is simply a very very poor choice to make - and will simply lead to far fewer posix conformant implementations, and as soom as that happens, we'll be heading back to the bad old days, when every system differed from the others, in an attempt to lock in clients, and be (in their view) better than the others. That is a much worse outcome than needing to deal with a few broken (mostly) scripts from time to time. Particularly as that problem will remain, as the non-conforming systems will start out being non-conforming by ignoring the restriction intended to help with that issue. Simply reject this. 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 ======================================================================
