linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG] NTFS code doesn't sanitize folder names sufficiently
@ 2012-07-26 18:18 Marian Beermann
  2012-07-27 14:28 ` Calvin Walton
  2012-08-01 23:16 ` Cody P Schafer
  0 siblings, 2 replies; 3+ messages in thread
From: Marian Beermann @ 2012-07-26 18:18 UTC (permalink / raw)
  To: LKML; +Cc: linux-fsdevel

Hello everyone,

today I noticed some very odd behaviour, which could lead people to 
believe a loss of data, because it is possible to create directories 
with backslashes in them.

I am currently running kernel 3.5.

To completly reproduce the problem to the full extend you'll need a 
Windows computer, but to see whats wrong Linux completly suffices :-)

On a Linux computer
1. Create a directory named TestA on an NTFS partition
2. Create a subdirectory of TestA named TestB
3. Create a third directory alongside TestA named TestA\TestB (the 
fundamental problem is this: backslashes in directory names)

Connect the drive containing the NTFS partition now to a Windows 
computer and navigate to the directory containing TestA and TestA\TestB. 
If you navigate to the folder (not path!) TestA\TestB you'll actually 
see the contents of the path TestA\TestB (the subfolder TestB) and not 
the contents of the directory.
It is not possible on a Windows machine to access the contents of the 
directory named TestA\TestB. This is not a bug in Windows, it's caused 
by a bug in the NTFS driver, which allows illegal characters.

The solution to this would be to disallow creation of files and folders 
on NTFS drives containing illegal characters.

Best regards
Marian Beermann

(notice: I'm not subscribed to linux-fsdevel...)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [BUG] NTFS code doesn't sanitize folder names sufficiently
  2012-07-26 18:18 [BUG] NTFS code doesn't sanitize folder names sufficiently Marian Beermann
@ 2012-07-27 14:28 ` Calvin Walton
  2012-08-01 23:16 ` Cody P Schafer
  1 sibling, 0 replies; 3+ messages in thread
From: Calvin Walton @ 2012-07-27 14:28 UTC (permalink / raw)
  To: Marian Beermann; +Cc: LKML, linux-fsdevel

On Thu, 2012-07-26 at 20:18 +0200, Marian Beermann wrote:
> Hello everyone,
> 
> today I noticed some very odd behaviour, which could lead people to 
> believe a loss of data, because it is possible to create directories 
> with backslashes in them.
> 
> I am currently running kernel 3.5.
> 
> To completly reproduce the problem to the full extend you'll need a 
> Windows computer, but to see whats wrong Linux completly suffices :-)
> 
> On a Linux computer
> 1. Create a directory named TestA on an NTFS partition
> 2. Create a subdirectory of TestA named TestB
> 3. Create a third directory alongside TestA named TestA\TestB (the 
> fundamental problem is this: backslashes in directory names)

If you're writing new directories to an NTFS partition, it's very
probable that you're not actually using the in-kernel NTFS driver at
all. It's more likely that you have the userspace (FUSE) NTFS driver
instead:
http://www.tuxera.com/community/ntfs-3g-download/

In fact, they have a FAQ about it the issue that you're seeing:
http://www.tuxera.com/community/ntfs-3g-faq/#posixfilenames2
You use the 'windows_names' mount option to disable creating file and
directory names that confuse windows.

Linux itself (and most native Linux programs) has no issues with
directory names containing the '\' character, of course; the only
characters that you cannot use are '/' and ASCII NUL, 0x00.

-- 
Calvin Walton <calvin.walton@kepstin.ca>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [BUG] NTFS code doesn't sanitize folder names sufficiently
  2012-07-26 18:18 [BUG] NTFS code doesn't sanitize folder names sufficiently Marian Beermann
  2012-07-27 14:28 ` Calvin Walton
@ 2012-08-01 23:16 ` Cody P Schafer
  1 sibling, 0 replies; 3+ messages in thread
From: Cody P Schafer @ 2012-08-01 23:16 UTC (permalink / raw)
  To: Marian Beermann; +Cc: linux-fsdevel, LKML


> The solution to this would be to disallow creation of files and
> folders on NTFS drives containing illegal characters.

Illegal characters with respect to Windows & the like are different 
from Illegal characters with respect to the NTFS filesystem structure.

Looking at ntfs-3g(8) [yes, I'm aware that is a different driver that 
this bug is about], the section on Windows Filename Compatability says 
this:

       [...] all characters are
       allowed except '/' and '\0'. This is perfectly legal on Windows, 
though some application may get
       confused. The option windows_names may be used to apply Windows 
restrictions to new file names.

To recap: no data will be lost due to using '\' in filenames. Some 
operating systems just may not be capable off accessing it.

--
Cody


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-08-01 23:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-26 18:18 [BUG] NTFS code doesn't sanitize folder names sufficiently Marian Beermann
2012-07-27 14:28 ` Calvin Walton
2012-08-01 23:16 ` Cody P Schafer

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).