Even with the previous fix, we still are reading the iovecs once to determine SGs needed, and then again later on. Preallocating space for sg lists as part of rds_message seemed like a good idea but it might be better to not do this. While working to redo that code, this patch attempts to protect against userspace rewriting the rds_iovec array between the first and second accesses. The consequences of this would be either a too-small or too-large sg list array. Too large is not an issue. This patch changes all callers of message_alloc_sgs to handle running out of preallocated sgs, and fail gracefully. Signed-off-by: Andy Grover <andy.grover@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
af_rds.c | ||
bind.c | ||
cong.c | ||
connection.c | ||
ib.c | ||
ib.h | ||
ib_cm.c | ||
ib_rdma.c | ||
ib_recv.c | ||
ib_ring.c | ||
ib_send.c | ||
ib_stats.c | ||
ib_sysctl.c | ||
info.c | ||
info.h | ||
iw.c | ||
iw.h | ||
iw_cm.c | ||
iw_rdma.c | ||
iw_recv.c | ||
iw_ring.c | ||
iw_send.c | ||
iw_stats.c | ||
iw_sysctl.c | ||
loop.c | ||
loop.h | ||
message.c | ||
page.c | ||
rdma.c | ||
rdma_transport.c | ||
rdma_transport.h | ||
rds.h | ||
recv.c | ||
send.c | ||
stats.c | ||
sysctl.c | ||
tcp.c | ||
tcp.h | ||
tcp_connect.c | ||
tcp_listen.c | ||
tcp_recv.c | ||
tcp_send.c | ||
tcp_stats.c | ||
threads.c | ||
transport.c | ||
xlist.h |