tracing: eval_map_next() should always increase position index

if seq_file .next fuction does not change position index,
read after some lseek can generate unexpected output.

Link: http://lkml.kernel.org/r/7ad85b22-1866-977c-db17-88ac438bc764@virtuozzo.com

Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
[ This is not a bug fix, it just makes it "technically correct"
  which is why I applied it. NULL is only returned on an anomaly
  which triggers a WARN_ON ]
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Vasily Averin 2020-01-24 10:03:01 +03:00 committed by Steven Rostedt (VMware)
parent e4075e8bdf
commit 039958a5f7

View File

@ -5399,14 +5399,12 @@ static void *eval_map_next(struct seq_file *m, void *v, loff_t *pos)
* Paranoid! If ptr points to end, we don't want to increment past it. * Paranoid! If ptr points to end, we don't want to increment past it.
* This really should never happen. * This really should never happen.
*/ */
(*pos)++;
ptr = update_eval_map(ptr); ptr = update_eval_map(ptr);
if (WARN_ON_ONCE(!ptr)) if (WARN_ON_ONCE(!ptr))
return NULL; return NULL;
ptr++; ptr++;
(*pos)++;
ptr = update_eval_map(ptr); ptr = update_eval_map(ptr);
return ptr; return ptr;