summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorErik Elfström <erik.elfstrom@gmail.com>2015-06-15 19:39:52 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-06-15 20:14:01 (GMT)
commit921bdd96afc17ca055af261066eabdf026cb2195 (patch)
tree4fb673cb9182575f264e4564f9981d862b993108 /cache.h
parenta93bedada88dc15b0143708e1cb87c8fe9b9c705 (diff)
downloadgit-921bdd96afc17ca055af261066eabdf026cb2195.zip
git-921bdd96afc17ca055af261066eabdf026cb2195.tar.gz
git-921bdd96afc17ca055af261066eabdf026cb2195.tar.bz2
setup: sanity check file size in read_gitfile_gently
read_gitfile_gently will allocate a buffer to fit the entire file that should be read. Add a sanity check of the file size before opening to avoid allocating a potentially huge amount of memory if we come across a large file that someone happened to name ".git". The limit is set to a sufficiently unreasonable size that should never be exceeded by a genuine .git file. Signed-off-by: Erik Elfström <erik.elfstrom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/cache.h b/cache.h
index 25578cb..858d9b3 100644
--- a/cache.h
+++ b/cache.h
@@ -454,6 +454,7 @@ extern const char *get_git_work_tree(void);
#define READ_GITFILE_ERR_INVALID_FORMAT 5
#define READ_GITFILE_ERR_NO_PATH 6
#define READ_GITFILE_ERR_NOT_A_REPO 7
+#define READ_GITFILE_ERR_TOO_LARGE 8
extern const char *read_gitfile_gently(const char *path, int *return_error_code);
#define read_gitfile(path) read_gitfile_gently((path), NULL)
extern const char *resolve_gitdir(const char *suspect);