diff options
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r-- | net/sctp/socket.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index e878da0949db..0e3de0c71137 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -386,7 +386,8 @@ static int sctp_do_bind(struct sock *sk, union sctp_addr *addr, int len) | |||
386 | /* Add the address to the bind address list. | 386 | /* Add the address to the bind address list. |
387 | * Use GFP_ATOMIC since BHs will be disabled. | 387 | * Use GFP_ATOMIC since BHs will be disabled. |
388 | */ | 388 | */ |
389 | ret = sctp_add_bind_addr(bp, addr, SCTP_ADDR_SRC, GFP_ATOMIC); | 389 | ret = sctp_add_bind_addr(bp, addr, af->sockaddr_len, |
390 | SCTP_ADDR_SRC, GFP_ATOMIC); | ||
390 | 391 | ||
391 | /* Copy back into socket for getsockname() use. */ | 392 | /* Copy back into socket for getsockname() use. */ |
392 | if (!ret) { | 393 | if (!ret) { |
@@ -577,6 +578,7 @@ static int sctp_send_asconf_add_ip(struct sock *sk, | |||
577 | af = sctp_get_af_specific(addr->v4.sin_family); | 578 | af = sctp_get_af_specific(addr->v4.sin_family); |
578 | memcpy(&saveaddr, addr, af->sockaddr_len); | 579 | memcpy(&saveaddr, addr, af->sockaddr_len); |
579 | retval = sctp_add_bind_addr(bp, &saveaddr, | 580 | retval = sctp_add_bind_addr(bp, &saveaddr, |
581 | sizeof(saveaddr), | ||
580 | SCTP_ADDR_NEW, GFP_ATOMIC); | 582 | SCTP_ADDR_NEW, GFP_ATOMIC); |
581 | addr_buf += af->sockaddr_len; | 583 | addr_buf += af->sockaddr_len; |
582 | } | 584 | } |