This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch]: NUL and other special names


Christopher Faylor wrote:
On Tue, Jun 01, 2004 at 06:11:55PM -0400, Pierre A. Humblet wrote:

Christopher Faylor wrote:

On Mon, May 31, 2004 at 06:46:11PM -0400, Pierre A. Humblet wrote:

This patch prevents NtCreateFile from creating files with special
names such as NUL.
Because this needs to be checked very often, I tried to code it
efficiently with a binary search (it can perhaps be reused elsewhere).

The new function is_special_name() overlaps with special_name(),
although there are small differences (it was designed from tests
on XP Home Ed). Perhaps these two can be merged one day.

Haven't we already done a "GetFileAttributes" on the path by the time it reaches the NtCreateFile? If so, couldn't we just avoid trying to create a file which has "bad" attributes?

Chris,


Yes, we have done a "GetFileAttributes". I just checked the values. For AUX, CON, COMx, LPTx, NUL and PRN, the attribute is 0x20,
FILE_ATTRIBUTE_ARCHIVE For conin$, conout$ and clock$ it is FFFFFFFF
So we could filter on those values and only test for special names
if necessary.
Is that what you meant?


I was hoping there might be more state available than that.  Oh well.
Is the GetFileType call any better?

I keep thinking that there is a layer of translation that we're missing
here and we should be somehow using an enumeration that the OS provides
rather than coming up with our own table.

cgf


NtQueryAttributesFile() ??



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]