summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlok Swaminathan <swaminathanalok@gmail.com>2024-08-26 18:57:09 +0300
committerAndrew Morton <akpm@linux-foundation.org>2024-09-10 02:47:41 +0300
commit7b0a5b666959719043123a8882bae49ec699d948 (patch)
tree148d421f180a5ca77a8814a0fe30ccddcecd55bc /lib
parent74b0099340e0be96b37f5f8b0b5d02b48bb25a2b (diff)
downloadlinux-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.c2
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++;