tipc: add a bounds check in link_recv_changeover_msg()
The bearer_id here comes from skb->data and it can be a number from 0 to 7. The problem is that the ->links[] array has only 2 elements so I have added a range check. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ac718b6930
commit
cb4b102f0a
|
@ -2306,8 +2306,11 @@ static int link_recv_changeover_msg(struct tipc_link **l_ptr,
|
|||
struct tipc_msg *tunnel_msg = buf_msg(tunnel_buf);
|
||||
u32 msg_typ = msg_type(tunnel_msg);
|
||||
u32 msg_count = msg_msgcnt(tunnel_msg);
|
||||
u32 bearer_id = msg_bearer_id(tunnel_msg);
|
||||
|
||||
dest_link = (*l_ptr)->owner->links[msg_bearer_id(tunnel_msg)];
|
||||
if (bearer_id >= MAX_BEARERS)
|
||||
goto exit;
|
||||
dest_link = (*l_ptr)->owner->links[bearer_id];
|
||||
if (!dest_link)
|
||||
goto exit;
|
||||
if (dest_link == *l_ptr) {
|
||||
|
|
Loading…
Reference in New Issue