2020-01-24 07:04:52

by Vasily Averin

[permalink] [raw]
Subject: [PATCH 2/7] gcov_seq_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/gcov/fs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c
index e5eb5ea..cc4ee48 100644
--- a/kernel/gcov/fs.c
+++ b/kernel/gcov/fs.c
@@ -108,9 +108,9 @@ static void *gcov_seq_next(struct seq_file *seq, void *data, loff_t *pos)
{
struct gcov_iterator *iter = data;

+ (*pos)++;
if (gcov_iter_next(iter))
return NULL;
- (*pos)++;

return iter;
}
--
1.8.3.1


2020-01-30 13:12:02

by Peter Oberparleiter

[permalink] [raw]
Subject: Re: [PATCH 2/7] gcov_seq_next should increase position index

On 24.01.2020 08:02, Vasily Averin 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]>

Acked-by: Peter Oberparleiter <[email protected]>

> ---
> kernel/gcov/fs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c
> index e5eb5ea..cc4ee48 100644
> --- a/kernel/gcov/fs.c
> +++ b/kernel/gcov/fs.c
> @@ -108,9 +108,9 @@ static void *gcov_seq_next(struct seq_file *seq, void *data, loff_t *pos)
> {
> struct gcov_iterator *iter = data;
>
> + (*pos)++;
> if (gcov_iter_next(iter))
> return NULL;
> - (*pos)++;
>
> return iter;
> }
>


--
Peter Oberparleiter
Linux on Z Development - IBM Germany

2020-02-25 06:44:05

by Vasily Averin

[permalink] [raw]
Subject: Re: [PATCH 2/7] gcov_seq_next should increase position index

Dear Andrew,
Could you please pick up this patch too?

On 1/30/20 4:09 PM, Peter Oberparleiter wrote:
> On 24.01.2020 08:02, Vasily Averin 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]>
>
> Acked-by: Peter Oberparleiter <[email protected]>
>
>> ---
>> kernel/gcov/fs.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c
>> index e5eb5ea..cc4ee48 100644
>> --- a/kernel/gcov/fs.c
>> +++ b/kernel/gcov/fs.c
>> @@ -108,9 +108,9 @@ static void *gcov_seq_next(struct seq_file *seq, void *data, loff_t *pos)
>> {
>> struct gcov_iterator *iter = data;
>>
>> + (*pos)++;
>> if (gcov_iter_next(iter))
>> return NULL;
>> - (*pos)++;
>>
>> return iter;
>> }
>>
>
>