Sean Kelly wrote:

On Thu, Dec 19, 2002 at 11:35:01PM -0800, Nate Lawson wrote:

>On Fri, 20 Dec 2002, Sean Kelly wrote:
>
>>On my 5.0-CURRENT kernel built 45 minutes ago, I can bring my system

to its

>>knees by doing
>>
>># cat /dev/io
>>
>>While I understand that this isn't exactly something one would

normally be

>>doing, is it really something that should bring the system down?
>
>You're running as root.  So does "yes > /dev/da0" and "cat

/dev/urandom >

>/dev/mem" and ... (infinity)


While I don't really care to test it, I wager that `yes >/dev/da0` will
not
cause the system to lock hard. But you seem to be talking abot something
very different. You are talking about WRITING. I am talking about
READING.

# cat /dev/da0
# cat /dev/urandom

None of these bring the system to its knees. So why does

# cat /dev/io

totally lock my system solid?

According to the manpage:
   The special file /dev/io is a controlled security hole that allows a
pro-
   cess to gain I/O privileges (which are normally reserved for kernel-
   internal code).  Any process that holds a file descriptor on /dev/io
open
   will get its IOPL bits in the flag register set, thus allowing it to
per-
   form direct I/O operations.

This says nothing about what happens if you attempt to read() from
/dev/io,
as `cat /dev/io` would be expected to do. At the least, there should be
a
big, fat, blinking WARNING on the manpage telling you that `cat /dev/io`
will
bring your system down.

Many peripheral hardware device do not like having their registers blindly read (it's quite common for a read operation on a register to signal an ASIC that it's ok to do a certain action) and will respond with nasty things like interrupt storms, endless PCI target aborts, etc. Whether this is silly or not is not the point; this is just one of the many places in Unix that have no seatbelts and assume that the superuser knows what he is doing.

Scott


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to