2020-01-24 07:04:57

by Vasily Averin

[permalink] [raw]
Subject: [PATCH 3/7] t_next should increase position index

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

https://bugzilla.kernel.org/show_bug.cgi?id=206283
Signed-off-by: Vasily Averin <[email protected]>
---
kernel/trace/ftrace.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 9bf1f2c..ca25210 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -3442,8 +3442,10 @@ static void *t_mod_start(struct seq_file *m, loff_t *pos)
loff_t l = *pos; /* t_probe_start() must use original pos */
void *ret;

- if (unlikely(ftrace_disabled))
+ if (unlikely(ftrace_disabled)) {
+ (*pos)++;
return NULL;
+ }

if (iter->flags & FTRACE_ITER_PROBE)
return t_probe_next(m, pos);
--
1.8.3.1


2020-01-29 17:14:07

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH 3/7] t_next should increase position index

On Fri, 24 Jan 2020 10:02:51 +0300
Vasily Averin <[email protected]> wrote:

> if seq_file .next fuction does not change position index,
> read after some lseek can generate unexpected output.
>
> https://bugzilla.kernel.org/show_bug.cgi?id=206283
> Signed-off-by: Vasily Averin <[email protected]>
> ---
> kernel/trace/ftrace.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 9bf1f2c..ca25210 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -3442,8 +3442,10 @@ static void *t_mod_start(struct seq_file *m, loff_t *pos)
> loff_t l = *pos; /* t_probe_start() must use original pos */
> void *ret;
>
> - if (unlikely(ftrace_disabled))
> + if (unlikely(ftrace_disabled)) {
> + (*pos)++;
> return NULL;
> + }

This isn't needed. If ftrace_disabled is set, we shouldn't be printing
anything. This case isn't the same as the report in the bugzilla.

-- Steve

>
> if (iter->flags & FTRACE_ITER_PROBE)
> return t_probe_next(m, pos);

2020-01-30 07:19:54

by Vasily Averin

[permalink] [raw]
Subject: Re: [PATCH 3/7] t_next should increase position index

On 1/29/20 8:12 PM, Steven Rostedt wrote:
> On Fri, 24 Jan 2020 10:02:51 +0300
> Vasily Averin <[email protected]> wrote:
>
>> if seq_file .next fuction does not change position index,
>> read after some lseek can generate unexpected output.
>>
>> https://bugzilla.kernel.org/show_bug.cgi?id=206283
>> Signed-off-by: Vasily Averin <[email protected]>
>> ---
>> kernel/trace/ftrace.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
>> index 9bf1f2c..ca25210 100644
>> --- a/kernel/trace/ftrace.c
>> +++ b/kernel/trace/ftrace.c
>> @@ -3442,8 +3442,10 @@ static void *t_mod_start(struct seq_file *m, loff_t *pos)
>> loff_t l = *pos; /* t_probe_start() must use original pos */
>> void *ret;
>>
>> - if (unlikely(ftrace_disabled))
>> + if (unlikely(ftrace_disabled)) {
>> + (*pos)++;
>> return NULL;
>> + }
>
> This isn't needed. If ftrace_disabled is set, we shouldn't be printing
> anything. This case isn't the same as the report in the bugzilla.

I'm agree, thank you, let's drop this patch.

Vasily Averin