diff options
| author | Jeff Layton <jlayton@kernel.org> | 2025-10-13 09:54:53 -0400 |
|---|---|---|
| committer | Chuck Lever <chuck.lever@oracle.com> | 2025-11-16 18:20:11 -0500 |
| commit | 6b3b697d65d46a0f640216a3f6c72856c159c567 (patch) | |
| tree | f2133713f46de7e3f0ab777bbd7ee0100103f4c3 /tools/lib/python/kdoc/python_version.py | |
| parent | ebd3330d1ca8844b0a0dba060d223523a186a5f9 (diff) | |
sunrpc: allocate a separate bvec array for socket sends
svc_tcp_sendmsg() calls xdr_buf_to_bvec() with the second slot of
rq_bvec as the start, but doesn't reduce the array length by one, which
could lead to an array overrun. Also, rq_bvec is always rq_maxpages in
length, which can be too short in some cases, since the TCP record
marker consumes a slot.
Fix both problems by adding a separate bvec array to the svc_sock that
is specifically for sending. For TCP, make this array one slot longer
than rq_maxpages, to account for the record marker. For UDP, only
allocate as large an array as we need since it's limited to 64k of
payload.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
