2023-11-03 23:19:02

by Richard Cochran

[permalink] [raw]
Subject: Re: [PATCH net-next V3] ptp: fix corrupted list in ptp_open

On Fri, Nov 03, 2023 at 09:15:03PM +0800, Edward Adam Davis wrote:
> There is no lock protection when writing ptp->tsevqs in ptp_open(),
> ptp_release(), which can cause data corruption, use mutex lock to avoid this
> issue.

The problem is the bogus call to ptp_release() in ptp_read().

Just delete that.

No need for another mutex.

Thanks,
Richard


2023-11-03 23:25:03

by Richard Cochran

[permalink] [raw]
Subject: Re: [PATCH net-next V3] ptp: fix corrupted list in ptp_open

On Fri, Nov 03, 2023 at 04:18:44PM -0700, Richard Cochran wrote:
> On Fri, Nov 03, 2023 at 09:15:03PM +0800, Edward Adam Davis wrote:
> > There is no lock protection when writing ptp->tsevqs in ptp_open(),
> > ptp_release(), which can cause data corruption, use mutex lock to avoid this
> > issue.
>
> The problem is the bogus call to ptp_release() in ptp_read().
>
> Just delete that.

Like this...

diff --git a/drivers/ptp/ptp_chardev.c b/drivers/ptp/ptp_chardev.c
index 282cd7d24077..27c1ef493617 100644
--- a/drivers/ptp/ptp_chardev.c
+++ b/drivers/ptp/ptp_chardev.c
@@ -585,7 +585,5 @@ ssize_t ptp_read(struct posix_clock_context *pccontext, uint rdflags,
free_event:
kfree(event);
exit:
- if (result < 0)
- ptp_release(pccontext);
return result;
}

2023-11-04 02:08:47

by Richard Cochran

[permalink] [raw]
Subject: Re: [PATCH net-next V3] ptp: fix corrupted list in ptp_open

On Fri, Nov 03, 2023 at 04:18:44PM -0700, Richard Cochran wrote:
> No need for another mutex.

Actually the mutex is needed.

Thanks,
Richard