mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge branch 'jk/cap-exclude-file-size'
An overly large ".gitignore" files are now rejected silently. * jk/cap-exclude-file-size: dir.c: reduce max pattern file size to 100MB dir.c: skip .gitignore, etc larger than INT_MAX
This commit is contained in:
20
dir.c
20
dir.c
@@ -30,6 +30,13 @@
|
||||
#include "symlinks.h"
|
||||
#include "trace2.h"
|
||||
#include "tree.h"
|
||||
#include "hex.h"
|
||||
|
||||
/*
|
||||
* The maximum size of a pattern/exclude file. If the file exceeds this size
|
||||
* we will ignore it.
|
||||
*/
|
||||
#define PATTERN_MAX_FILE_SIZE (100 * 1024 * 1024)
|
||||
|
||||
/*
|
||||
* Tells read_directory_recursive how a file or directory should be treated.
|
||||
@@ -1148,6 +1155,12 @@ static int add_patterns(const char *fname, const char *base, int baselen,
|
||||
}
|
||||
}
|
||||
|
||||
if (size > PATTERN_MAX_FILE_SIZE) {
|
||||
warning("ignoring excessively large pattern file: %s", fname);
|
||||
free(buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
add_patterns_from_buffer(buf, size, base, baselen, pl);
|
||||
return 0;
|
||||
}
|
||||
@@ -1204,6 +1217,13 @@ int add_patterns_from_blob_to_list(
|
||||
if (r != 1)
|
||||
return r;
|
||||
|
||||
if (size > PATTERN_MAX_FILE_SIZE) {
|
||||
warning("ignoring excessively large pattern blob: %s",
|
||||
oid_to_hex(oid));
|
||||
free(buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
add_patterns_from_buffer(buf, size, base, baselen, pl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user