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


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


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