fd_revoke() shouldn't panic if the descriptor provided is not a file or

socket.  Return EINVAL instead.

Submitted by:	Ville-Pertti Keinone <will@iki.fi>
This commit is contained in:
Mark Newton 1999-12-12 10:27:04 +00:00
parent c137e096c2
commit ce12799bad
2 changed files with 4 additions and 18 deletions

View File

@ -256,17 +256,10 @@ fd_revoke(p, fd)
if ((u_int)fd >= fdp->fd_nfiles || (fp = fdp->fd_ofiles[fd]) == NULL)
return EBADF;
switch (fp->f_type) {
case DTYPE_VNODE:
vp = (struct vnode *) fp->f_data;
case DTYPE_SOCKET:
if (fp->f_type != DTYPE_VNODE)
return EINVAL;
default:
panic("svr4_fcntl(F_REVOKE)");
/*NOTREACHED*/
}
vp = (struct vnode *) fp->f_data;
if (vp->v_type != VCHR && vp->v_type != VBLK) {
error = EINVAL;

View File

@ -256,17 +256,10 @@ fd_revoke(p, fd)
if ((u_int)fd >= fdp->fd_nfiles || (fp = fdp->fd_ofiles[fd]) == NULL)
return EBADF;
switch (fp->f_type) {
case DTYPE_VNODE:
vp = (struct vnode *) fp->f_data;
case DTYPE_SOCKET:
if (fp->f_type != DTYPE_VNODE)
return EINVAL;
default:
panic("svr4_fcntl(F_REVOKE)");
/*NOTREACHED*/
}
vp = (struct vnode *) fp->f_data;
if (vp->v_type != VCHR && vp->v_type != VBLK) {
error = EINVAL;