From owner-freebsd-bugs@FreeBSD.ORG Sun Nov 6 09:20:22 2005 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 717B016A41F for ; Sun, 6 Nov 2005 09:20:22 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id B6FB243D58 for ; Sun, 6 Nov 2005 09:20:21 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id jA69KLZF032742 for ; Sun, 6 Nov 2005 09:20:21 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id jA69KLEX032741; Sun, 6 Nov 2005 09:20:21 GMT (envelope-from gnats) Date: Sun, 6 Nov 2005 09:20:21 GMT Message-Id: <200511060920.jA69KLEX032741@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: vaidab Cc: Subject: Re: bin/88365 : [patch] rm(1): "/bin/rm -P" cannot remove files not writeable by user while "/bin/rm" can X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: vaidab List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Nov 2005 09:20:22 -0000 The following reply was made to PR bin/88365; it has been noted by GNATS. From: vaidab To: bug-followup@FreeBSD.org Cc: vaida.bogdan@gmail.com Subject: Re: bin/88365 : [patch] rm(1): "/bin/rm -P" cannot remove files not writeable by user while "/bin/rm" can Date: Sun, 6 Nov 2005 10:14:07 +0100 (CET) I'm submitting the patch again. mx1.freebsd.org rejects me as I don't have a hostname and my send-pr are sent via email > Fix: --- /usr/src/bin/rm/rm.c.orig Thu Nov 3 21:19:47 2005 +++ /usr/src/bin/rm/rm.c Thu Nov 3 21:20:42 2005 @@ -393,6 +393,8 @@ } if (!S_ISREG(sbp->st_mode)) return (1); + if (lchmod(file, S_IWUSR) == -1) + goto err; if ((fd = open(file, O_WRONLY, 0)) == -1) goto err; if (fstatfs(fd, &fsb) == -1) @@ -450,7 +452,7 @@ * we will not be able to overwrite file contents and will * barf later. */ - if (!stdin_ok || S_ISLNK(sp->st_mode) || Pflag || + if (!stdin_ok || S_ISLNK(sp->st_mode) || (!access(name, W_OK) && !(sp->st_flags & (SF_APPEND|SF_IMMUTABLE)) && (!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid)))