diff options
author | Alok Swaminathan <swaminathanalok@gmail.com> | 2024-08-26 18:57:09 +0300 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2024-09-10 02:47:41 +0300 |
commit | 7b0a5b666959719043123a8882bae49ec699d948 (patch) | |
tree | 148d421f180a5ca77a8814a0fe30ccddcecd55bc /lib | |
parent | 74b0099340e0be96b37f5f8b0b5d02b48bb25a2b (diff) | |
download | linux-7b0a5b666959719043123a8882bae49ec699d948.tar.xz |
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')
-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 15b73f490720..aa57900d2062 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++; |