Date: Tue, 20 Feb 2001 06:10:05 -0800 (PST) From: David Malone <dwmalone@maths.tcd.ie> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/25206: Kernel Panic Message-ID: <200102201410.f1KEA5948150@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/25206; it has been noted by GNATS. From: David Malone <dwmalone@maths.tcd.ie> To: mm@omnix.net Cc: freebsd-gnats-submit@FreeBSD.org, peter@FreeBSD.org, iedowse@maths.tcd.ie Subject: Re: kern/25206: Kernel Panic Date: Tue, 20 Feb 2001 14:03:29 +0000 On Mon, Feb 19, 2001 at 11:34:40AM -0800, mm@omnix.net wrote: > luser@PAF$ tail -f /dev/ttyp1 > > now ruser is going to connect to my box: > ruser@NOWHERE$ telnet PAF > Connection closed by foreign host. This seems to be caused by kqueue trying to work on a revoked file discriptor. I think this bug is inaccessable in more recent versions of -stable after Peter's commit to vfs_vnops.c on 2001/02/09. The offending code looks like: static int filt_vnread(struct knote *kn, long hint) { struct vnode *vp = (struct vnode *)kn->kn_fp->f_data; struct inode *ip = VTOI(vp); kn->kn_data = ip->i_size - kn->kn_fp->f_offset; return (kn->kn_data != 0); } There is now a check to make sure that the file is in a UFS filesystem at the time the filter is attached. However, if the file is revoked it could change type, so checking something like: if (vp->v_tag != VT_UFS) return 1; might be a good idea. (Currently only device files can be revoked, but that's only 'cos it was disabeled on other file types 'cos it didn't work on fifos). David. 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?200102201410.f1KEA5948150>