From owner-freebsd-hackers Mon Sep 18 01:06:54 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id BAA07417 for hackers-outgoing; Mon, 18 Sep 1995 01:06:54 -0700 Received: from ref.tfs.com (ref.tfs.com [140.145.254.251]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id BAA07411 for ; Mon, 18 Sep 1995 01:06:51 -0700 Received: (from julian@localhost) by ref.tfs.com (8.6.11/8.6.9) id BAA01219; Mon, 18 Sep 1995 01:06:49 -0700 From: Julian Elischer Message-Id: <199509180806.BAA01219@ref.tfs.com> Subject: Re: suspect code in 'unlink' syscall. To: julian@ref.tfs.com (Julian Elischer) Date: Mon, 18 Sep 1995 01:06:48 -0700 (PDT) Cc: hackers@freebsd.org In-Reply-To: <199509180750.AAA01170@ref.tfs.com> from "Julian Elischer" at Sep 18, 95 00:50:32 am X-Mailer: ELM [version 2.4 PL24] Content-Type: text Content-Length: 952 Sender: owner-hackers@freebsd.org Precedence: bulk > > looking at 'unlink (2)' > I see, > if (vp->v_type != VDIR || > (error = suser(p->p_ucred, &p->p_acflag)) == 0) { > /* > * The root of a mounted filesystem cannot be deleted. > */ > if (vp->v_flag & VROOT) > error = EBUSY; > else > (void) vnode_pager_uncache(vp); > } > > I translate this as: > "if it's not a DIR, or we are root", > check if we are deleteing the > root of an FS, > if not, flush cache...... > > now, if we were NOT root, and it IS a dir...... (normal...) > > can we delete it? The answer is 'NO' but I'm not sure I see why.. AH I just found it.. only root can unlink a dir, all others can only do 'rmdir' calls.. ok, I admit it.. I need to go to sleep. > I'm about to try this.. > if you don't hear from me, the building exploded... It didn't > > julian :) > >