Ticket #41 (closed defect)

Opened 7 years ago

Last modified 6 years ago

Eraser problem with long filenames

Reported by: Ozo Owned by: Joel
Priority: major Milestone:
Component: Version: 5.8.6a
Keywords: Cc: lowjoel@…, gtrant@…
Processor Architecture: Blocked By:
Blocking: Operating System:

Description

Based on Joel's comments, Eraser would have problems deleting files with filenames longer than 260 characters (on NTFS partitions). See his comments below:

"Bug this on Trac. I think it is because of the extremely long filename. The problem here is simple. Windows is on a layered architecture. At the lowest level, the filesystem (NTFS - you definitely are using it because FAT doesnt support > 260 chars) supports ~32767 characters in the file name. Explorer (the shell) however only supports 260. I'm not sure whether the FindFirstFile/FindNextFile? APIs support the long file names (v5 definitely doesn't, v6 may), so do bug it so I can look into it when I've got time on my hands."

And here is my initial problem report:

"When using Eraser (v5.86 on Vista 32-bit) to delete files in my Sanboxie sandboxe (http://www.sandboxie.com/), some files will usually be left behind. The error I get from Eraser is always the same: --Error: There was nothing to erase--.

These files that Eraser can't see are kind of weird: their filename is very long, and Explorer himself has troubles dealing with them (ex: Explorer's right-click contextual menu will not show all the options you would expect). So there are some options like "Open" that may not be available from Explorer, but the Delete option is always there. Since Eraser can't see these files, I have to delete them with Explorer (unsafe).

Is this problem already known? Is there any chance we get a fix for that in the near future?
I am having this problem with Eraser since I first tried Eraser, i.e. release v5.84. Because upgrading to v5.86 didn't help, I had to find another alternative. Now I am using East-Tec Eraser 2008 and it works perfectly well, ... but I am on their Trial version for now (their application is not free) and I hope I don't have to buy from them.

Note:

Here is the DIR output of a folder with one of such files that Eraser can't erase. Please note the very weird filename:

Volume in drive C has no label.
Volume Serial Number is XXXX-XXXX

Directory of C:\Users\XX\AppData?\Roaming\sandboxes\Sandbox\DefaultBox?\user\current\AppData?\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\JEYM66JP

2008-01-15 23:13 <DIR> .
2008-01-15 23:13 <DIR> ..
2008-01-15 23:09 265 main_31;sz=480x70;!c=31;kvid=Ro5apjAjzDA;kpu=NHLVideo;ko=p;kpid=31;kr=H;u=Ro5apjAjzDA%7C31%7C468E5AA63023CC30;tile=1;dcopt=ist;ord=61611[1].asx
1 File(s) 265 bytes
2 Dir(s) 88ÿ830ÿ775ÿ296 bytes free"

Blocking

IdSummaryMilestone
#41Eraser problem with long filenames

Blocked by

IdSummaryMilestone
#41Eraser problem with long filenames

Change History

comment:1 Changed 7 years ago by Joel

  • Priority changed from blocker to major
  • Status changed from new to accepted

comment:2 Changed 6 years ago by Joel

I've been doing a bit of background research on the topic, and while the Kernel allows for ~32000 char paths, .NET (used for v6) doesn't. Now we could P/Invoke the Windows API, but that too opens another can of worms:

http://blogs.msdn.com/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx

We start exposing ourselves to vulnerabilities as the file path will no longer be checked and normalised by Windows.

What do the other developers think?

comment:3 Changed 6 years ago by Joel

  • Status changed from accepted to pending

comment:4 Changed 6 years ago by Joel

  • Cc lowjoel@…, gtrant@… added

comment:5 Changed 6 years ago by trac-robot

  • Status changed from pending to closed

This ticket was closed automatically by the system. It was previously set to a Pending status and hasn't been updated within 14 days.

Note: See TracTickets for help on using tickets.