]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: fix fixup_range cascade for compressed+encrypted objects 67966/head
authorMatthew N. Heler <matthew.heler@hotmail.com>
Sun, 22 Mar 2026 16:41:00 +0000 (11:41 -0500)
committerMatthew N. Heler <matthew.heler@hotmail.com>
Tue, 24 Mar 2026 19:45:58 +0000 (14:45 -0500)
commit0378ee8febd48b6657830f9d5435714878f96e6a
tree474ffd0d5ffc9729526b073b23ad7ffa1899c062
parenta73a06f7b723c2f813540e882efa83b298a9db4d
rgw: fix fixup_range cascade for compressed+encrypted objects

When both decrypt and decompress filters are active, decrypt's
fixup_range cascades into decompress via the next pointer and
overwrites q_len with block-aligned encrypted offsets instead of
plaintext offsets. This breaks GET and upload-part-copy reads.

Fix by calling next->fixup_range() at the beginning of
RGWGetObj_BlockDecrypt::fixup_range() so the next filter sees
the original plaintext range before decrypt block-aligns it.
Move the GET path's fixup_range call to after the full filter
chain is built so a single call composes correctly.

Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
src/rgw/rgw_crypt.cc
src/rgw/rgw_op.cc