mirror of
https://github.com/git/git.git
synced 2026-03-18 20:50:07 +01:00
Fix is_gitfile() for files larger than PATH_MAX
The logic to check whether a file is a gitfile used the heuristics that
the file cannot be larger than PATH_MAX. But in that case it returned the
wrong value. Our test cases do not cover this, as the bundle files
produced are smaller than PATH_MAX. Except on Windows.
While at it, fix the faulty logic that the path stored in a gitfile cannot
be larger than PATH_MAX-sizeof("gitfile: ").
Problem identified by running the test suite in msysGit, offending commit
identified by Jörg Rosenkranz.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
@@ -868,8 +868,8 @@ static int is_gitfile(const char *url)
|
||||
return 0;
|
||||
if (!S_ISREG(st.st_mode))
|
||||
return 0;
|
||||
if (st.st_size < 10 || st.st_size > PATH_MAX)
|
||||
return 1;
|
||||
if (st.st_size < 10 || st.st_size > 9 + PATH_MAX)
|
||||
return 0;
|
||||
|
||||
fd = open(url, O_RDONLY);
|
||||
if (fd < 0)
|
||||
|
||||
Reference in New Issue
Block a user