[PATCH v2] posix: Avoid a stack overflow when glob is given many trailing slashes [BZ #30635]

Andreas Schwab schwab@suse.de
Wed Oct 8 06:38:24 GMT 2025


On Okt 07 2025, Collin Funk wrote:

> diff --git a/posix/glob.c b/posix/glob.c
> index a7c7dd1ebe..82ee873d80 100644
> --- a/posix/glob.c
> +++ b/posix/glob.c
> @@ -596,6 +596,10 @@ __glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
>                    flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC);
>                  }
>              }
> +          /* Prevent stack overflows with many trailing '/' characters.  */
> +          for (char *p = &dirname[dirlen - 1];
> +               dirname < p && p[0] == '/' && p[-1] == '/'; --p)
                  p > dirname

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."


More information about the Libc-alpha mailing list