All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: "Theodore Ts'o" <tytso@mit.edu>,
	Adam Borowski <kilobyte@angband.pl>,
	Al Viro <viro@ZenIV.linux.org.uk>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] vfs: hard-ban creating files with control characters in the name
Date: Fri, 6 Oct 2017 13:09:42 +1100	[thread overview]
Message-ID: <20171006020942.GS15067@dastard> (raw)
In-Reply-To: <20171005161619.GA16482@fieldses.org>

On Thu, Oct 05, 2017 at 12:16:19PM -0400, J. Bruce Fields wrote:
> This kind of restriction sounds more like a permanent feature of the
> filesystem--something you'd set at mkfs time.
> 
> We already have filesystems with these kinds of restrictions, don't we?

In general, no. Filename storage typically defined  in the
filesystem on-disk formats as an opaque string of bytes - the
filesystem has no business parsing them to determine validity of the
bytes. Think encrypted filenames and the like - control characters
in the on-disk format are most definitely necessary and therefore
must be legal.

> It'd seem trivial to add a "disallow weird characters on this
> superblock" flag to ext4.

It seems that way until you consider the scope of work it would
involve: to be an effective restrictive mechanism, we'd have to add
it to the on-disk format of every supported filesystem, not just
ext4.

And then, because it has become part of the defined on disk format,
every userspace utility for each filesystem has to support it -
mkfs, fsck, etc. Filesystem on-disk format documentation needs to be
updated.  And checking filenames for validity under this new scheme
and "fixing" them if they are invalid (i.e. corrupt) needs to be
added to fsck, online scrubbers, etc. Then there's all the test
infrastructure that is needed around this, too, so we can ensure
that every filesystem implements the exact same semantics and
behaviour.

And if it changes the way directories are formatted on disk for a
filesystem, then you've got to do non-obvious stuff like /patch
grub/ so it can parse the new format from the bootloader context.

Nothing is trivial or simple when you start needing to add
on-disk features to filesystems...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2017-10-06  2:16 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-03  0:50 [PATCH] vfs: hard-ban creating files with control characters in the name Adam Borowski
2017-10-03  2:07 ` Al Viro
2017-10-03  3:22   ` Adam Borowski
2017-10-05 10:07     ` Olivier Galibert
2017-10-06 14:54       ` Matthew Wilcox
2017-10-03 16:40   ` Theodore Ts'o
2017-10-03 17:32     ` Adam Borowski
2017-10-03 18:58       ` Theodore Ts'o
2017-10-03 19:12         ` Casey Schaufler
2017-10-05 16:16         ` J. Bruce Fields
2017-10-06  2:09           ` Dave Chinner [this message]
2017-10-06 14:38             ` J. Bruce Fields
2017-10-06 14:57             ` Matthew Wilcox
2017-10-06 20:00               ` Theodore Ts'o
2017-10-08 22:03               ` Dave Chinner
2017-10-05 13:47       ` Alan Cox
2017-10-05 12:07 Alexey Dobriyan

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=20171006020942.GS15067@dastard \
    --to=david@fromorbit.com \
    --cc=bfields@fieldses.org \
    --cc=kilobyte@angband.pl \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=viro@ZenIV.linux.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.