diff options
| author | Chuck Lever <chuck.lever@oracle.com> | 2026-06-04 20:06:38 +0300 |
|---|---|---|
| committer | Anna Schumaker <anna.schumaker@hammerspace.com> | 2026-06-10 22:47:06 +0300 |
| commit | c3a628aab2dc8f5fd7bff86ceaeae64de590e60a (patch) | |
| tree | 6a883049516a103ad21758292b2d3ed57bd33fca /scripts/Makefile.thinlto | |
| parent | c7653d5cebc8492c77ec0415b5e9c0fb3e644bc6 (diff) | |
| download | linux-c3a628aab2dc8f5fd7bff86ceaeae64de590e60a.tar.xz | |
xprtrdma: Sanitize the reply credit grant after parsing
The out_norqst exit in rpcrdma_reply_handler() branches away before
the credit clamp, so a reply that matches no pending request reaches
out_post carrying the raw credit value parsed from the wire.
rpcrdma_post_recvs() does not bound its @needed argument: the refill
loop allocates and chains Receive WRs until the count is satisfied or
allocation fails. A peer that sends a well-formed reply carrying an
unknown XID and an inflated credit grant therefore drives rep
allocation and Receive posting past re_max_requests on every such
reply.
Move the clamp to immediately after the credit field is parsed,
ahead of the first branch that can reach out_post, so every later
consumer sees a sanitized value. The cwnd update stays on the
matched-request path.
Fixes: 704f3f640f72 ("xprtrdma: Post receive buffers after RPC completion")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <anna.schumaker@hammerspace.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
