diff options
| author | Guanghui Yang <3497809730@qq.com> | 2026-07-09 14:41:51 +0000 |
|---|---|---|
| committer | Theodore Ts'o <tytso@mit.edu> | 2026-07-22 12:25:26 -0400 |
| commit | 05704335803b69c1bfa8637b7ada942bf2ee8a41 (patch) | |
| tree | cb007dedf8207f3c92f39e145e7e69d2fee1de9f /tools/perf/scripts/python | |
| parent | 409a7f12a0933ff2c617fa814c76cef0bd1d457a (diff) | |
ext4: fix buffer_head leak in ext4_init_orphan_info
ext4_init_orphan_info() reads orphan file blocks with ext4_bread()
and stores the returned buffer_head in oi->of_binfo[i].ob_bh.
If ext4_bread() succeeds but the orphan block magic or checksum
validation fails, the function jumps to out_free. However, the old
out_free loop starts releasing buffers from i - 1, so the current
buffer_head at index i is skipped.
This leaks the buffer_head reference obtained by ext4_bread() on the
bad magic and bad checksum error paths.
Fix this by tracking the number of successfully read buffer_heads and
releasing exactly those buffer_heads on the error path.
Fixes: 02f310fcf47f ("ext4: Speedup ext4 orphan inode handling")
Signed-off-by: Guanghui Yang <3497809730@qq.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/tencent_B38798612A159E21450ECF959016371B0807@qq.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
