diff options
| author | Maurizio Lombardi <mlombard@redhat.com> | 2026-03-16 17:39:35 +0300 |
|---|---|---|
| committer | Keith Busch <kbusch@kernel.org> | 2026-04-08 22:05:00 +0300 |
| commit | ea8e356acb165cb1fd75537a52e1f66e5e76c538 (patch) | |
| tree | c7ef7bd2d4e142d3c30ab194698ef0d01de3e030 /include/linux | |
| parent | 23528aa3320a74b028e990b5a939fed32a8afc2f (diff) | |
| download | linux-ea8e356acb165cb1fd75537a52e1f66e5e76c538.tar.xz | |
nvmet-tcp: propagate nvmet_tcp_build_pdu_iovec() errors to its callers
Currently, when nvmet_tcp_build_pdu_iovec() detects an out-of-bounds
PDU length or offset, it triggers nvmet_tcp_fatal_error(cmd->queue)
and returns early. However, because the function returns void, the
callers are entirely unaware that a fatal error has occurred and
that the cmd->recv_msg.msg_iter was left uninitialized.
Callers such as nvmet_tcp_handle_h2c_data_pdu() proceed to blindly
overwrite the queue state with queue->rcv_state = NVMET_TCP_RECV_DATA
Consequently, the socket receiving loop may attempt to read incoming
network data into the uninitialized iterator.
Fix this by shifting the error handling responsibility to the callers.
Fixes: 52a0a9854934 ("nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec")
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Yunje Shin <ioerts@kookmin.ac.kr>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions
