DF-3162 / fix.diff
fix for DF-3162: revoke(2) on a FIFO silently did nothing (DTYPE_FIFO mismatch) Verified on the audit QEMU guest (see VERDICT.md in this directory). @@ -1448,7 +1457,10 @@ * fp goes away (if not still open by e.g. the kernel). */ if (vp->v_type != VCHR) { - error = fdrevoke(vp, DTYPE_VNODE, cred); + if (vp->v_type == VFIFO) + error = fdrevoke(vp, DTYPE_FIFO, cred); + else + error = fdrevoke(vp, DTYPE_VNODE, cred); return (error); } if ((dev = vp->v_rdev) == NULL) { |