mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-04-25 15:43:58 +00:00
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
1 changed files with 4 additions and 1 deletions
|
@ -2306,8 +2306,11 @@ static int link_recv_changeover_msg(struct tipc_link **l_ptr,
|
||||||
struct tipc_msg *tunnel_msg = buf_msg(tunnel_buf);
|
struct tipc_msg *tunnel_msg = buf_msg(tunnel_buf);
|
||||||
u32 msg_typ = msg_type(tunnel_msg);
|
u32 msg_typ = msg_type(tunnel_msg);
|
||||||
u32 msg_count = msg_msgcnt(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)
|
if (!dest_link)
|
||||||
goto exit;
|
goto exit;
|
||||||
if (dest_link == *l_ptr) {
|
if (dest_link == *l_ptr) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue