linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Hudec <bulb@ucw.cz>
To: Joseph Wagner <theman@josephdwagner.info>
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: RFC: Illegal Characters in File Names
Date: Mon, 19 Jul 2004 10:47:57 +0200	[thread overview]
Message-ID: <20040719084757.GC3227@vagabond> (raw)
In-Reply-To: <200407181941.32163.theman@josephdwagner.info>

[-- Attachment #1: Type: text/plain, Size: 2665 bytes --]

On Sun, Jul 18, 2004 at 19:41:32 -0500, Joseph Wagner wrote:
> IMHO, e2fsck is not sufficiently aggressive in examining a file name for 
> illegal characters. While it is possible to place non-printing control 

There are just two illegal characters. '\0' and '/'. All other
characters are *permited*.

> characters in a file name, few (if any) programs support opening a file 
> with control characters in the file name.  In fact, 'rm' doesn't even 
> support control characters.  To remove such a file, one must substitute a
> wildcard character and run rm interactively (i.e. 'rm -i').

rm does perfectly support control characters! As do ALL the standard
utilities. What rm especialy does NOT support is the wildcard! It's the
shell that expands these. It's the shell that has problems with these,
but it's not a show-stopper:

$ touch "$(echo foo\\nbar)"
$ ls
foo?bar
$ ls -Q
"foo\nbar"
$ rm 'foo
quote> bar'
$ ls
$

$ touch foo^Bbar
$ ls
foo?bar
$ ls -Q
"foo\002bar"
$ rm foo^Bbar
$ ls
$

(note, that the ^B was written as Ctrl-V Ctrl-B)

Perfectly legal. Everything is right. You can write each and every
control char this way, just some of them must be in single quotes.

> Some of us in the e2fsprogs project are considering a change which would 
> mark all non-printing control characters (i.e. ASCII <=31 and ASCII == 127) 
> as illegal.

They are not illegal. The shell has problems with them, and the problems
are not absolute. You CAN type them in if you try. The file managers
will operate on them without problems, too.

> I decided not to flag characters > ASCII 127 as illegal in case some day in 
> the future the encoding changes to UTF-8, in which case valid printing 
> non-control characters exist > 127.  On the flip side, ASCII and UTF-8 are 
> 100% compatible when <= 127, so the changes I did make will be fine with 
> both.

The system is 8-bit clean an is relied upon by many users. I have LOTS
of files with iso-8859-2 encoded names on my filesystem.

> Can anyone suggest a good reason not to good forward with this?
> 
> If it is OK to go forward, should the kernel be changed to disallow a file 
> name from having these same non-printing control characters?

No, it's not OK. These characters are perfectly legal. Actualy, more
programs will have problems with filename containing a ':', that with
a filename containing, say, a '\b'. (usualy because they accept URI
arguments and use presence of : to distinguish plain filename and an
URI).

-------------------------------------------------------------------------------
						 Jan 'Bulb' Hudec <bulb@ucw.cz>

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2004-07-19  8:47 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-19  0:41 RFC: Illegal Characters in File Names Joseph Wagner
2004-07-19  8:47 ` Jan Hudec [this message]
2004-07-19 19:21   ` Joseph D. Wagner
2004-07-19 20:08     ` Pat LaVarre
2004-07-19 20:54       ` Joseph D. Wagner
2004-07-20  6:33     ` Jan-Benedict Glaw
2004-07-20 16:25       ` Joseph D. Wagner
2004-07-20 20:42         ` Stephen Rothwell
     [not found]       ` <20040720162549.857014B7E7@dvmwest.gt.owl.de>
2004-07-20 16:52         ` Jan-Benedict Glaw
     [not found]   ` <20040719192145.50750578E5@jabberwock.ucw.cz>
2004-07-19 21:01     ` Jan Hudec
2004-07-20 16:40       ` Bryan Henderson
2004-07-20 16:54         ` Guy
2004-07-20 18:10           ` viro
2004-07-20 20:44             ` Guy
2004-07-20 21:27               ` Matthew Wilcox
2004-07-20 21:37                 ` Jan Hudec
2004-07-20 21:40                   ` Matthew Wilcox
2004-07-20 21:45                     ` Jan Hudec
2004-07-20 21:49                       ` Guy
2004-07-20 22:04                         ` Jan Hudec
2004-07-20 22:11                         ` Paul Stewart
2004-07-20 22:16                       ` Joseph D. Wagner
2004-07-21 12:26                         ` Jan-Benedict Glaw
2004-07-21 15:28                           ` Guy
2004-07-21 16:25                             ` Jan-Benedict Glaw
2004-07-21 12:24                       ` Jan-Benedict Glaw
2004-07-20 21:41               ` Bryan Henderson
2004-07-21 12:21               ` Jan-Benedict Glaw
2004-07-21 15:25                 ` Guy
2004-07-22 18:04                   ` Matthew Wilcox
2004-07-22 18:35                     ` Guy
2004-07-20 20:57             ` Jan Hudec
2004-07-20 21:09               ` Guy
2004-07-20 21:36                 ` Jan Hudec
2004-07-20 22:13                 ` viro
2004-07-20 22:44                   ` Jan Hudec
2004-07-20 22:51                     ` viro
2004-07-20 23:30                   ` Guy
2004-07-21 20:25                     ` Bryan Henderson
2004-07-22  3:17                       ` John Newbigin
2004-07-22  3:24                         ` Matthew Wilcox
2004-07-22  6:01                         ` viro
2004-07-22 22:12                         ` Bryan Henderson
2004-07-22 14:51                       ` Jan-Benedict Glaw
2004-07-22 22:44                         ` Bryan Henderson
2004-07-22 22:47                           ` Jan Hudec
2004-07-23 18:10                             ` Bryan Henderson
2004-07-20 23:52                   ` John Newbigin
2004-07-21  3:26                     ` Joseph D. Wagner
2004-07-21  4:15                     ` viro
2004-07-21  5:03                     ` Guy
2004-07-21 12:28                 ` Jan-Benedict Glaw
2004-07-21 15:30                   ` Guy
2004-07-21 16:26                     ` Jan-Benedict Glaw
2004-07-21 16:33                       ` Jan Hudec
2004-07-21 16:41                       ` Guy
2004-07-21 17:01                         ` Jan Hudec
2004-07-20 22:16             ` Joseph D. Wagner
2004-07-21 12:43               ` Jan-Benedict Glaw
2004-07-20 22:31             ` viro
2004-07-20 18:27           ` Bryan Henderson
2004-07-19  9:26 ` Matthew Wilcox
2004-07-19 19:21   ` Joseph D. Wagner
     [not found]   ` <E1BmdhG-0004NG-00@master.debian.org>
2004-07-20  2:43     ` Matthew Wilcox
2004-07-20  3:16       ` Joseph D. Wagner
2004-07-20  8:45         ` Jan Hudec
2004-07-20 16:25           ` Joseph D. Wagner
2004-07-20 16:41             ` Guy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040719084757.GC3227@vagabond \
    --to=bulb@ucw.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=theman@josephdwagner.info \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).