tracing/filter: Do not allow infix to exceed end of string
[firefly-linux-kernel-4.4.55.git] / kernel / trace / trace_events_filter.c
index 1c08866779f2da27e231e5deeee5b9434b1d3ca2..67654bb5bc2f53cf190d0bca60327de56efb3709 100644 (file)
@@ -1015,6 +1015,9 @@ static void parse_init(struct filter_parse_state *ps,
 
 static char infix_next(struct filter_parse_state *ps)
 {
+       if (!ps->infix.cnt)
+               return 0;
+
        ps->infix.cnt--;
 
        return ps->infix.string[ps->infix.tail++];
@@ -1030,6 +1033,9 @@ static char infix_peek(struct filter_parse_state *ps)
 
 static void infix_advance(struct filter_parse_state *ps)
 {
+       if (!ps->infix.cnt)
+               return;
+
        ps->infix.cnt--;
        ps->infix.tail++;
 }