Date: Mon, 10 Dec 2001 14:30:02 -0800 (PST) From: Mike Smith <msmith@freebsd.org> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/32677: pciconf -l opens /dev/pci for O_RDWR Message-ID: <200112102230.fBAMU2w50001@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/32677; it has been noted by GNATS. From: Mike Smith <msmith@freebsd.org> To: Brooks Davis <brooks@one-eyed-alien.net> Cc: seth@psychotic.aberrant.org, FreeBSD-gnats-submit@FreeBSD.ORG, msmith@FreeBSD.ORG, msmith@mass.dis.org Subject: Re: kern/32677: pciconf -l opens /dev/pci for O_RDWR Date: Mon, 10 Dec 2001 14:35:23 -0800 > On Mon, Dec 10, 2001 at 01:06:15PM -0500, seth@psychotic.aberrant.org wrote: > > Check arguments to pciconf. If -l, open O_RDONLY. > > This doesn't actually work. The current ioctl access controls require > that you have the device opened for write in all cases. This is a rather > odd check, but it's the case. My recollection of the last conversation > about this on the lists is that on some configurations the ability to > read pci state is the ability to crash the system so it is restricted. > It seems PCIOCGETCONF and PCIOCREAD should probalby be allowed if the > user can read the device and the device nodes should be fixed to be > unreadable to non-root users, but there may be some reason for the > current configuration that I don't know about. I've CC'd Mike Smith for > his opinion on this. The problem with reading is that on some Alpha systems, you can cause a machine check with an unaligned read. The correct fix would be to reject these reads at a suitable level in the Alpha PCI code, but a bandaid was implemented instead. A correct fix for this would be to correct the Alpha PCI code to check, and then check the open mode in a more logical fashion. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112102230.fBAMU2w50001>