mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
sctp: fix copying more bytes than expected in sctp_add_bind_addr
Dmitry reported that sctp_add_bind_addr may read more bytes than expected in case the parameter is a IPv4 addr supplied by the user through calls such as sctp_bindx_add(), because it always copies sizeof(union sctp_addr) while the buffer may be just a struct sockaddr_in, which is smaller. This patch then fixes it by limiting the memcpy to the min between the union size and a (new parameter) provided addr size. Where possible this parameter still is the size of that union, except for reading from user-provided buffers, which then it accounts for protocol type. Reported-by: Dmitry Vyukov <dvyukov@google.com> Tested-by: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e2857b8f11
commit
133800d1f0
5 changed files with 15 additions and 9 deletions
|
@ -1830,7 +1830,8 @@ no_hmac:
|
|||
/* Also, add the destination address. */
|
||||
if (list_empty(&retval->base.bind_addr.address_list)) {
|
||||
sctp_add_bind_addr(&retval->base.bind_addr, &chunk->dest,
|
||||
SCTP_ADDR_SRC, GFP_ATOMIC);
|
||||
sizeof(chunk->dest), SCTP_ADDR_SRC,
|
||||
GFP_ATOMIC);
|
||||
}
|
||||
|
||||
retval->next_tsn = retval->c.initial_tsn;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue