diff options
| author | Alok Swaminathan <swaminathanalok@gmail.com> | 2024-08-26 11:57:09 -0400 |
|---|---|---|
| committer | Andrew Morton <akpm@linux-foundation.org> | 2024-09-09 16:47:41 -0700 |
| commit | 7b0a5b666959719043123a8882bae49ec699d948 (patch) | |
| tree | 148d421f180a5ca77a8814a0fe30ccddcecd55bc /lib/glob.c | |
| parent | 74b0099340e0be96b37f5f8b0b5d02b48bb25a2b (diff) | |
| download | linux-7b0a5b666959719043123a8882bae49ec699d948.tar.gz | |
lib: glob.c: added null check for character class
Add null check for character class. Previously, an inverted character
class could result in a nul byte being matched and lead to the function
reading past the end of the inputted string.
Link: https://lkml.kernel.org/r/20240826155709.12383-1-swaminathanalok@gmail.com
Signed-off-by: Alok Swaminathan <swaminathanalok@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'lib/glob.c')
| -rw-r--r-- | lib/glob.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/glob.c b/lib/glob.c index 15b73f490720c0..aa57900d2062c0 100644 --- a/lib/glob.c +++ b/lib/glob.c @@ -68,6 +68,8 @@ bool __pure glob_match(char const *pat, char const *str) back_str = --str; /* Allow zero-length match */ break; case '[': { /* Character class */ + if (c == '\0') /* No possible match */ + return false; bool match = false, inverted = (*pat == '!'); char const *class = pat + inverted; unsigned char a = *class++; |
