When parsing tree entries, reject mode values that don't fit into an unsigned int. Signed-off-by: René Scharfe <l.s.r@xxxxxx> --- tree-walk.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tree-walk.c b/tree-walk.c index 74f4d710e8..5e7bc38600 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -17,6 +17,8 @@ static const char *get_mode(const char *str, unsigned int *modep) while ((c = *str++) != ' ') { if (c < '0' || c > '7') return NULL; + if ((mode << 3) >> 3 != mode) + return NULL; mode = (mode << 3) + (c - '0'); } *modep = mode; -- 2.39.1