Browse Source

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>
maint
Linus Torvalds 18 years ago committed by Junio C Hamano
parent
commit
5d5cea67af
  1. 3
      dir.c

3
dir.c

@ -353,6 +353,9 @@ static int read_directory_recursive(struct dir_struct *dir, const char *path, co @@ -353,6 +353,9 @@ static int read_directory_recursive(struct dir_struct *dir, const char *path, co
!strcmp(de->d_name + 1, "git")))
continue;
len = strlen(de->d_name);
/* Ignore overly long pathnames! */
if (len + baselen + 8 > sizeof(fullname))
continue;
memcpy(fullname + baselen, de->d_name, len+1);
if (simplify_away(fullname, baselen + len, simplify))
continue;

Loading…
Cancel
Save