NTB: fix pointer math issues
Subsystems (2)
PATCH 1/1 NTB: fix pointer math issues
->remote_rx_info and ->rx_info are struct ntb_rx_info pointers. If we add sizeof(struct ntb_rx_info) then it goes too far.
Signed-off-by Dan Carpenter <[email protected]>
---
drivers/ntb/ntb_transport.c +2 -2
@@ -486,7 +486,7 @@ static void ntb_transport_setup_qp_mw(struct ntb_transport *nt, (qp_num /NTB_NUM_MW * rx_size); rx_size -=sizeof (struct ntb_rx_info ); - qp->rx_buff = qp->remote_rx_info +sizeof (struct ntb_rx_info ); + qp->rx_buff = qp->remote_rx_info +1 ; qp->rx_max_frame =min (transport_mtu, rx_size); qp->rx_max_entry = rx_size / qp->rx_max_frame; qp->rx_index =0 ;
@@ -780,7 +780,7 @@ static void ntb_transport_init_queue(struct ntb_transport *nt, (qp_num /NTB_NUM_MW * tx_size); tx_size -=sizeof (struct ntb_rx_info ); - qp->tx_mw = qp->rx_info +sizeof (struct ntb_rx_info ); + qp->tx_mw = qp->rx_info +1 ; qp->tx_max_frame =min (transport_mtu, tx_size); qp->tx_max_entry = tx_size / qp->tx_max_frame; qp->tx_index =0 ;
Quoted 2 lines · Dan Carpenter
->remote_rx_info and ->rx_info are struct
ntb_rx_infopointers. If we addsizeof(struct ntb_rx_info)then it goes too far.
Good catch, I'll add it to me pending patch queue.
Thanks,
Jon
Quoted 26 lines
Signed-off-by Dan Carpenter <[email protected]>---
drivers/ntb/ntb_transport.c +2
-2@@ -486,7 +486,7 @@ static void ntb_transport_setup_qp_mw(struct ntb_transport *nt, (qp_num /NTB_NUM_MW * rx_size); rx_size -=sizeof (struct ntb_rx_info ); - qp->rx_buff = qp->remote_rx_info +sizeof (struct ntb_rx_info ); + qp->rx_buff = qp->remote_rx_info +1 ; qp->rx_max_frame =min (transport_mtu, rx_size); qp->rx_max_entry = rx_size / qp->rx_max_frame; qp->rx_index =0 ;@@ -780,7 +780,7 @@ static void ntb_transport_init_queue(struct ntb_transport *nt, (qp_num /NTB_NUM_MW * tx_size); tx_size -=sizeof (struct ntb_rx_info ); - qp->tx_mw = qp->rx_info +sizeof (struct ntb_rx_info ); + qp->tx_mw = qp->rx_info +1 ; qp->tx_max_frame =min (transport_mtu, tx_size); qp->tx_max_entry = tx_size / qp->tx_max_frame; qp->tx_index =0 ;