[PATCH 6/5] NUL hack to create_file()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 29, 2008, 00:17 UTC
- Message-ID
- <1212020246-26480-7-git-send-email-gitster@pobox.com>
- In-Reply-To
- <1212020246-26480-6-git-send-email-gitster@pobox.com>
This is not meant for application to the mainline. It allows your git to refuse to create a blob whose name is "nul".
--- 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; + return -1; + } + } mode = (mode & 0100) ? 0777 : 0666; return open(path, O_WRONLY | O_CREAT | O_EXCL, mode); }
-- 1.5.6.rc0.43.g823ea