Date: 23 Oct 1996 07:08:15 -0500 From: Zach Heilig <zach@blizzard.gaffaneys.com> To: freebsd-bugs@freefall.freebsd.org Subject: Re: bin/1377 Message-ID: <87684151e8.fsf@bedrock.gaffaneys.com> In-Reply-To: "Marc G. Fournier"'s message of Tue, 22 Oct 1996 21:32:58 -0700 (PDT)
index | next in thread | raw e-mail
> Synopsis: mv(1) retains the setuid bit when it is unable to preserve the uid.
Here is a patch that updates the fastcopy() routine in mv(1) to
conform to the method cp(1) uses for handling setuid/setgid bits when
the uid and gid cannot be preserved. Note that the actual behavior of
cp -p does NOT match the man page (more on this later).
*** mv.c.orig Wed Oct 23 05:42:32 1996
--- mv.c Wed Oct 23 06:56:45 1996
***************
*** 207,219 ****
static u_int blen;
static char *bp;
register int nread, from_fd, to_fd;
if ((from_fd = open(from, O_RDONLY, 0)) < 0) {
warn("%s", from);
return (1);
}
! if ((to_fd =
! open(to, O_CREAT | O_TRUNC | O_WRONLY, sbp->st_mode)) < 0) {
warn("%s", to);
(void)close(from_fd);
return (1);
--- 207,219 ----
static u_int blen;
static char *bp;
register int nread, from_fd, to_fd;
+ mode_t new_mode;
if ((from_fd = open(from, O_RDONLY, 0)) < 0) {
warn("%s", from);
return (1);
}
! if ((to_fd = open(to, O_CREAT | O_TRUNC | O_WRONLY, 0600)) < 0) {
warn("%s", to);
(void)close(from_fd);
return (1);
***************
*** 237,245 ****
}
(void)close(from_fd);
! if (fchown(to_fd, sbp->st_uid, sbp->st_gid))
warn("%s: set owner/group", to);
! if (fchmod(to_fd, sbp->st_mode))
warn("%s: set mode", to);
tval[0].tv_sec = sbp->st_atime;
--- 237,249 ----
}
(void)close(from_fd);
! if (fchown(to_fd, sbp->st_uid, sbp->st_gid)) {
warn("%s: set owner/group", to);
! new_mode = sbp->st_mode & 01777;
! } else
! new_mode = sbp->st_mode;
!
! if (fchmod(to_fd, new_mode))
warn("%s: set mode", to);
tval[0].tv_sec = sbp->st_atime;
--
Zach Heilig (zach@blizzard.gaffaneys.com) | ALL unsolicited commercial email
Support bacteria -- it's the | is unwelcome. I avoid dealing
only culture some people have! | with companies that email ads.
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87684151e8.fsf>
