Re: [PATCH 7/7] sysvipc_find_ipc should increase position index

From: Waiman Long
Date: Fri Jan 24 2020 - 11:26:26 EST


On 1/24/20 2:03 AM, 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 <vvs@xxxxxxxxxxxxx>
> ---
> ipc/util.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ipc/util.c b/ipc/util.c
> index 915eacb..7a3ab2e 100644
> --- a/ipc/util.c
> +++ b/ipc/util.c
> @@ -764,13 +764,13 @@ static struct kern_ipc_perm *sysvipc_find_ipc(struct ipc_ids *ids, loff_t pos,
> total++;
> }
>
> + *new_pos = pos + 1;
> if (total >= ids->in_use)
> return NULL;
>
> for (; pos < ipc_mni; pos++) {
> ipc = idr_find(&ids->ipcs_idr, pos);
> if (ipc != NULL) {
> - *new_pos = pos + 1;
> rcu_read_lock();
> ipc_lock_object(ipc);
> return ipc;

Acked-by: Waiman Long <longman@xxxxxxxxxx>