diff options
-rw-r--r-- | kernel/trace/trace.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index d5f7c4d84bcd..063a92bad578 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -843,9 +843,12 @@ int trace_get_user(struct trace_parser *parser, const char __user *ubuf, | |||
843 | if (isspace(ch)) { | 843 | if (isspace(ch)) { |
844 | parser->buffer[parser->idx] = 0; | 844 | parser->buffer[parser->idx] = 0; |
845 | parser->cont = false; | 845 | parser->cont = false; |
846 | } else { | 846 | } else if (parser->idx < parser->size - 1) { |
847 | parser->cont = true; | 847 | parser->cont = true; |
848 | parser->buffer[parser->idx++] = ch; | 848 | parser->buffer[parser->idx++] = ch; |
849 | } else { | ||
850 | ret = -EINVAL; | ||
851 | goto out; | ||
849 | } | 852 | } |
850 | 853 | ||
851 | *ppos += read; | 854 | *ppos += read; |