This is the mail archive of the cygwin 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]

Cygwin files and devices philosophy


Hello,

I have a general question for the developers of cygwin.

When I open the file "\\.\COM37" this is not opened by cygwin as a serial port, but rather as a file. The reasoning (that I'm not disputing) is cygwin should have more of a posix/unix flavour. And so specific functionality to treat this as a COM port was removed.

So what "should ideally" happen when I open the file?

1. The file should be opened and no error

2. The file should be rejected by cygwin, as the paths don't look "posix".

If we take 1, it makes the rules simpler. Maybe this was provided because we really do want to open this and get a handle. Maybe we want to open a network device instead of a hardware device (which has similar sematics).

For point 2, this might be considered valid because the path is not POSIX and may confuse programs where the file to open is part of a command line argument.

In my case, I provide an option for a terminal program what device should be used to open the file. I don't want to restrict what devices are or are not allowed, except by using function calls to the Posix API to determine if the required functionality can be met.

However, if a user passes '\\.\COM37' it opens, isatty() is successful and my software hangs. Should it be up to my program to filter out nasty devices, or the underlying API? Needless to say, that this file doesn't behave as a tty because the fhandler_disk functions are being used. But other functions that I would expect to fail, don't.

I ask, so that I may understand in what direction cygwin developers prefer so I can modify my software in the appropriate way. I'd like it not to have any specific knowledge of cygwin, but it will if need be.

Could something of this nature lead to a security vulnerability in cygwin?


-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/


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