aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dynamic_debug.c
diff options
context:
space:
mode:
authorAndrey Ryabinin <a.ryabinin@samsung.com>2014-01-27 20:06:58 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-01-28 00:02:39 -0500
commit3ace678fd1b246b75e01eeac0554de35656136a4 (patch)
tree81db6091116b988123782988a37f8eadb4b4c55c /lib/dynamic_debug.c
parentd9e133e6f05fbb39e2ecf7bc1edca299729a8595 (diff)
dynamic_debug: fix ddebug_parse_query()
This fixes following scenario: $ echo 'file dynamic_debug.c line 1-123 +p' > /sys/kernel/debug/dynamic_debug/control -bash: echo: write error: Invalid argument $ dmesg | grep dynamic_debug dynamic_debug:ddebug_parse_query: last-line:123 < 1st-line:1 dynamic_debug:ddebug_parse_query: query parse failed Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com> Cc: Jason Baron <jbaron@akamai.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/dynamic_debug.c')
-rw-r--r--lib/dynamic_debug.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index f959c39cc007..e488d9a03adc 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -352,8 +352,10 @@ static int ddebug_parse_query(char *words[], int nwords,
352 return -EINVAL; 352 return -EINVAL;
353 if (last) { 353 if (last) {
354 /* range <first>-<last> */ 354 /* range <first>-<last> */
355 if (parse_lineno(last, &query->last_lineno) 355 if (parse_lineno(last, &query->last_lineno) < 0)
356 < query->first_lineno) { 356 return -EINVAL;
357
358 if (query->last_lineno < query->first_lineno) {
357 pr_err("last-line:%d < 1st-line:%d\n", 359 pr_err("last-line:%d < 1st-line:%d\n",
358 query->last_lineno, 360 query->last_lineno,
359 query->first_lineno); 361 query->first_lineno);