Avoid overflowing name buffer in deep directory structures
This just makes sure that when we do a read_directory(), we check that the filename fits in the buffer we allocated (with a bit of slop) Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
844c11ae25
commit
5d5cea67af
3
dir.c
3
dir.c
@ -353,6 +353,9 @@ static int read_directory_recursive(struct dir_struct *dir, const char *path, co
|
|||||||
!strcmp(de->d_name + 1, "git")))
|
!strcmp(de->d_name + 1, "git")))
|
||||||
continue;
|
continue;
|
||||||
len = strlen(de->d_name);
|
len = strlen(de->d_name);
|
||||||
|
/* Ignore overly long pathnames! */
|
||||||
|
if (len + baselen + 8 > sizeof(fullname))
|
||||||
|
continue;
|
||||||
memcpy(fullname + baselen, de->d_name, len+1);
|
memcpy(fullname + baselen, de->d_name, len+1);
|
||||||
if (simplify_away(fullname, baselen + len, simplify))
|
if (simplify_away(fullname, baselen + len, simplify))
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user