OSDN Git Service

contrib/plugins: Use GRWLock in execlog
authorAkihiko Odaki <akihiko.odaki@daynix.com>
Mon, 9 Oct 2023 16:40:50 +0000 (17:40 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Wed, 11 Oct 2023 07:46:33 +0000 (08:46 +0100)
commit1063693e1c503517a489e38fca489525eaea26c1
treec061655e932b29ab5688e175c2ee3146f8be8708
parentfb13735ab418ef8a5f86a5fd6b056bdbafed0daa
contrib/plugins: Use GRWLock in execlog

execlog had the following comment:
> As we could have multiple threads trying to do this we need to
> serialise the expansion under a lock. Threads accessing already
> created entries can continue without issue even if the ptr array
> gets reallocated during resize.

However, when the ptr array gets reallocated, the other threads may have
a stale reference to the old buffer. This results in use-after-free.

Use GRWLock to properly fix this issue.

Fixes: 3d7caf145e ("contrib/plugins: add execlog to log instruction execution and memory access")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230912224107.29669-5-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-12-alex.bennee@linaro.org>
contrib/plugins/execlog.c