[Bug 30397] New: Spoon Studio 2011 (ex Xenocode) application sandboxing scheme needs support for NtSetInformationFile class FileDispositionInformation (Stylizer 5.x, Visual CSS editor)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Apr 9 11:42:48 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=30397

             Bug #: 30397
           Summary: Spoon Studio 2011 (ex Xenocode) application sandboxing
                    scheme needs support for NtSetInformationFile class
                    FileDispositionInformation (Stylizer 5.x, Visual CSS
                    editor)
           Product: Wine
           Version: 1.5.1
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ntdll
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net
    Classification: Unclassified


Hello,

Stylizer 5.x (Visual CSS editor) is wrapped in Xenocode like sandboxing scheme,
now called "Spoon Studio 2011".

The usual native API hooking in several places.
It seems not very happy about some unimplemented NtSetInformationFile classes.

---snip ---
...
0025:Call ntdll.RtlInitUnicodeString(0032f334,008b3068
L"\\??\\C:\\users\\focht\\Local Settings\\Application
Data\\Skybound\\Stylizer\\Sandbox\\2011.12.15T20.58\\XSandbox.bin.__tmp__")
ret=0034d108
0025:Ret  ntdll.RtlInitUnicodeString() retval=0032f334 ret=0034d108
0025:Call
ntdll.NtOpenFile(0032f308,00110100,0032f31c,0032f2f8,00000007,00000020)
ret=0034da48
0025:Ret  ntdll.NtOpenFile() retval=00000000 ret=0034da48
0025:Call
ntdll.NtSetInformationFile(00000068,0032f300,0032f2cc,00000028,00000004)
ret=0034da84
0025:Ret  ntdll.NtSetInformationFile() retval=00000000 ret=0034da84
0025:Call
ntdll.NtSetInformationFile(00000068,0032f300,0032f31b,00000001,0000000d)
ret=0034da9d
0025:fixme:ntdll:NtSetInformationFile Unsupported class (13)
0025:Ret  ntdll.NtSetInformationFile() retval=c0000002 ret=0034da9d
0025:Call ntdll.NtClose(00000068) ret=0036b1d3
0025:Ret  ntdll.NtClose() retval=00000000 ret=0036b1d3 
...
0025:Call user32.MessageBoxW(00000000,008b2f70 L"The sandbox at
\\??\\C:\\users\\focht\\Local Settings\\Application
Data\\Skybound\\Stylizer\\Sandbox\\2011.12.15T20.58 is corrupt or inaccessible.
 Please check the location and try again.",008a3f48 L"Spoon Studio
2011",00000010) ret=00396aa6 
...
---snip ---

MSDN (ZwSetInformationFile):
http://msdn.microsoft.com/en-us/library/windows/hardware/ff567096%28v=vs.85%29.aspx

class 13 -> FILE_DISPOSITION_INFORMATION:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff545765%28v=vs.85%29.aspx

Also interesting read: Cygwin's Corinna Vinschen and some MS guy about deletion
semantics ;-)

http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.kernel/2007-02/msg00140.html

--- quote ---
First off, FILE_DELETE_ON_CLOSE
and FileDispositionInformation are NOT the same thing.

There are really two parts to delete. The first part is to logically
delete the file. This consists of the file system marking the file as
deleted and then waiting for the last handle to close. When a file is
marked as deleted, many operations (including new opens) fail. Once the
last handle as closed, the actual delete of the file can take place.

When you open a file with FILE_DELETE_ON_CLOSE, the file is left as is.
Neither part of delete is done. The only thing done is to remember that
when this handle is closed, the file should be deleted. All operations on
the file will proceed as normal. When the handle marked as delete on close
is closed, the file is logically deleted. If that handle was the last
handle, the file will also actually be deleted.

When you use FileDispositionInformation to set a file to deleted, the file
is logically deleted right then. Any new opens for the file and many other
operations will fail. The file system will not complete the actual removal
of the file until the last handle is closed, though.
--- quote ---

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list