Re: [PATCH] commit: ensure correct permissions of the commit message

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Mon, 21 Dec 2015, Junio C Hamano wrote:

> Jeff King <peff@xxxxxxxx> writes:
> 
> > On Sun, Dec 20, 2015 at 05:31:48PM -0800, Junio C Hamano wrote:
> >
> >> we could do something like this, perhaps?
> >> 
> >>         FILE *fopen_forcibly(const char *path, const char *mode)
> >>         {
> >>                 FILE *ret = fopen(path, mode);
> >> 
> >>                 if (!ret && errno == EPERM) {
> >>                         if (!unlink(path))
> >>                                 ret = fopen(path, mode);
> >>                         else
> >>                                 errno = EPERM;
> >>                 }
> >>                 return ret;
> >>         }
> >
> > Yeah, I think that is a much nicer solution for this case. It should
> > work even in a shared repo, since we set the permissions for the
> > surrounding $GIT_DIR appropriately[1].
> >
> > I guess it would not apply to any files that do not want to truncate the
> > existing contents. Probably it should drop the "mode" parameter at all,
> > since anything but "w" would be crazy?
> 
> Absolutely.  Thanks for spotting.

So maybe

	fcreate_or_truncate(const char *path)
	{
		 FILE *ret = fopen(path, "w");

		 if (!ret && errno == EPERM) {
			 if (!unlink(path))
				 ret = fopen(path, "w");
			 else
				 errno = EPERM;
		 }
		 return ret;
	 }

?

Ciao,
Dscho
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]