diff options
| author | Yifei Gao <gyf161023@gmail.com> | 2026-08-03 01:07:55 +0000 |
|---|---|---|
| committer | Mike Marshall <hubcap@omnibond.com> | 2026-08-11 14:02:46 -0400 |
| commit | f574296be7f46eb60beca851240b526df232f480 (patch) | |
| tree | 9f33967a458b2aaf5ba4c157fe084cf44e993c8f /tools/perf/scripts/python/event_analyzing_sample.py | |
| parent | db2ddb87143519e20a95aa36c60b36107b736a58 (diff) | |
orangefs: fix double-free of trailer_buf on readdir copy failure
On a readdir downcall, orangefs_devreq_write_iter() frees
op->downcall.trailer_buf with vfree() when copy_from_iter_full() fails,
but does not clear the pointer before goto Efault. The waiter in
do_readdir() is then woken with a negative status and frees the same
pointer again on its r < 0 path, causing a deterministic double-free.
A client holding /dev/pvfs2-req triggers it by sending a readdir
downcall whose declared trailer_size exceeds the bytes it supplies.
Clear the pointer after freeing so the readdir-side vfree() becomes a
no-op.
Fixes: 382f4581e67f ("orangefs: rewrite readdir to fix several bugs")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Yifei Gao <gyf161023@gmail.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'tools/perf/scripts/python/event_analyzing_sample.py')
0 files changed, 0 insertions, 0 deletions
