Re: [PATCH] Introduce core.sharedrepository
- From
Junio C Hamano <junkio@cox.net>
- Date
- Dec 22, 2005, 22:40 UTC
- Message-ID
- <7vaceshi18.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.63.0512222313070.12044@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 14 quoted lines
> +static int make_group_writable(const char *path)
> +{
> + struct stat st;
> +
> + if (lstat(path, &st) < 0)
> + return -1;
> + if (st.st_mode & S_IWUSR)
> + st.st_mode |= S_IWGRP;
> + if (S_ISDIR(st.st_mode))
> + st.st_mode |= S_ISGID;
> + if (chmod(path, st.st_mode) < 0)
> + return -2;
> + return 0;
> +}Perhaps g+sx not just g+s on directories.
Show 12 quoted lines
> +
> int safe_create_leading_directories(char *path)
> {
> char *pos = path;
> @@ -64,6 +79,10 @@ int safe_create_leading_directories(char
> *pos = '/';
> return -1;
> }
> + if (shared_repository && make_group_writable(path)) {
> + *pos = '/';
> + return -2;
> + }Wouldn't this safe_create_leading_directories("/pub/git.git/objects") try chmod "/pub" and fail?