Date: Mon, 23 Oct 2006 02:22:51 -0500 (CDT) From: Kevin Day <toasty@dragondata.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: bin/104702: [patch] Make fetch(1) preserve permissions when overwriting a file Message-ID: <200610230722.k9N7Mpqm042609@server28.stileproject.com> Resent-Message-ID: <200610230730.k9N7UCKh006831@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 104702 >Category: bin >Synopsis: [patch] Make fetch(1) preserve permissions when overwriting a file >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Oct 23 07:30:11 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Kevin Day >Release: FreeBSD 6.1-RELEASE amd64 >Organization: Your.Org, Inc. >Environment: System: FreeBSD server28 6.1-RELEASE FreeBSD 6.1-RELEASE #1: Sat Jul 29 06:31:24 UTC 2006 toasty@server28:/usr/src/sys/amd64/compile/SERVER amd64 >Description: In FreeBSD 4.x, fetch(1) would preserve file permissions when overwriting a file. Starting in 5.x, fetch applies inconsistent permissions when creating or overwriting an existing file. New files are given 0644, but overwritten files are given 0600. Not only is this inconsistent, but I believe fetch should preserve permissions when overwriting a file. >How-To-Repeat: server29# uname -r 6.1-RELEASE server29# fetch -o testfile http://www.freebsd.org testfile 100% of 18 kB 128 kBps server29# ls -l testfile -rw-r--r-- 1 root wheel 19135 Oct 19 14:37 testfile server29# chmod 664 testfile server29# ls -l testfile -rw-rw-r-- 1 root wheel 19135 Oct 19 14:37 testfile server29# fetch -o testfile http://www.freebsd.org testfile 100% of 18 kB 128 kBps server29# ls -l testfile -rw------- 1 root wheel 19135 Oct 19 14:37 testfile >Fix: --- fetch.c~ Mon Oct 23 02:13:44 2006 +++ fetch.c Fri Jul 28 23:40:48 2006 @@ -569,6 +569,8 @@ if (tmppath != NULL) { mkstemps(tmppath, strlen(slash) + 1); of = fopen(tmppath, "w"); + chown(tmppath, sb.st_uid, sb.st_gid); + chmod(tmppath, sb.st_mode & 07777); } } if (of == NULL) >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610230722.k9N7Mpqm042609>