SCTP: Fix sctp_getsockopt_get_peer_addrs

This is the split out of the patch that we agreed I should split
out from my last patch. It changes space_left to be computed in the same
way the to variable is. I know we talked about changing space_left to an
int, but I think size_t is more appropriate, since we should never have
negative space in our buffer, and computing using offsetof means space_left
should now never drop below zero.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>

authored by Neil Horman and committed by Vlad Yasevich 186e2343 408f22e8

+3 -4
+3 -4
net/sctp/socket.c
··· 4019 return -EINVAL; 4020 4021 to = optval + offsetof(struct sctp_getaddrs,addrs); 4022 - space_left = len - sizeof(struct sctp_getaddrs) - 4023 - offsetof(struct sctp_getaddrs,addrs); 4024 4025 list_for_each(pos, &asoc->peer.transport_addr_list) { 4026 from = list_entry(pos, struct sctp_transport, transports); ··· 4326 } 4327 4328 to = optval + offsetof(struct sctp_getaddrs,addrs); 4329 - space_left = len - sizeof(struct sctp_getaddrs) - 4330 - offsetof(struct sctp_getaddrs,addrs); 4331 addrs = kmalloc(space_left, GFP_KERNEL); 4332 if (!addrs) 4333 return -ENOMEM;
··· 4019 return -EINVAL; 4020 4021 to = optval + offsetof(struct sctp_getaddrs,addrs); 4022 + space_left = len - offsetof(struct sctp_getaddrs,addrs); 4023 4024 list_for_each(pos, &asoc->peer.transport_addr_list) { 4025 from = list_entry(pos, struct sctp_transport, transports); ··· 4327 } 4328 4329 to = optval + offsetof(struct sctp_getaddrs,addrs); 4330 + space_left = len - offsetof(struct sctp_getaddrs,addrs); 4331 + 4332 addrs = kmalloc(space_left, GFP_KERNEL); 4333 if (!addrs) 4334 return -ENOMEM;