Re: [PATCH 6/5] NUL hack to create_file()
- From
Daniel Barkalow <barkalow@iabervon.org>
- Date
- May 29, 2008, 15:55 UTC
- Message-ID
- <alpine.LNX.1.00.0805291145230.19665@iabervon.org>
- In-Reply-To
- <1212020246-26480-7-git-send-email-gitster@pobox.com>
On Wed, 28 May 2008, Junio C Hamano wrote:
> This is not meant for application to the mainline. It allows your git to > refuse to create a blob whose name is "nul".
I assume this is so you can test git's response to a defective filesystem without actually having a defective filesystem?
Show 17 quoted lines
> ---
> entry.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/entry.c b/entry.c
> index 222aaa3..d24b803 100644
> --- a/entry.c
> +++ b/entry.c
> @@ -81,6 +81,14 @@ static void remove_subtree(const char *path)
>
> static int create_file(const char *path, unsigned int mode)
> {
> + if (1) {
> + size_t len = strlen(path);
> + if (3 <= len && !strcmp(path + len - 3, "nul") &&
> + (3 == len || path[len - 4] == '/')) {
> + errno = EPERM;Shouldn't this be EEXIST? I think the issue is that the first exists for the purpose of open() but not for anything else we've done up to this point.
Show 14 quoted lines
> + return -1; > + } > + } > mode = (mode & 0100) ? 0777 : 0666; > return open(path, O_WRONLY | O_CREAT | O_EXCL, mode); > } > -- > 1.5.6.rc0.43.g823ea > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >