Skip to content

RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt

Kamal Heib requested to merge kheib/centos-stream-9:44248 into main

JIRA: https://issues.redhat.com/browse/RHEL-44248
CVE: CVE-2024-38544

commit 2b23b6097303ed0ba5f4bc036a1c07b6027af5c6
Author: Bob Pearson rpearsonhpe@gmail.com
Date: Fri Mar 29 09:55:04 2024 -0500

RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt  

In rxe_comp_queue_pkt() an incoming response packet skb is enqueued to the  
resp_pkts queue and then a decision is made whether to run the completer  
task inline or schedule it. Finally the skb is dereferenced to bump a 'hw'  
performance counter. This is wrong because if the completer task is  
already running in a separate thread it may have already processed the skb  
and freed it which can cause a seg fault.  This has been observed  
infrequently in testing at high scale.  

This patch fixes this by changing the order of enqueuing the packet until  
after the counter is accessed.  

Link: https://lore.kernel.org/r/20240329145513.35381-4-rpearsonhpe@gmail.com  
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>  
Fixes: 0b1e5b99a48b ("IB/rxe: Add port protocol stats")  
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>  

Signed-off-by: Kamal Heib kheib@redhat.com

Merge request reports