Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b46ae36de451212d253f31112338517753739191
Commit:     b46ae36de451212d253f31112338517753739191
Parent:     c068be5491924c1c1c37dc046f36976c27bc7bb2
Author:     Vlad Yasevich <[EMAIL PROTECTED]>
AuthorDate: Mon Jan 28 14:25:36 2008 -0500
Committer:  Vlad Yasevich <[EMAIL PROTECTED]>
CommitDate: Wed Feb 6 21:27:39 2008 -0500

    [SCTP]: Set ports in every address returned by sctp_getladdrs()
    
    Thomas Dreibholz has reported that port numbers are not filled
    in the results of sctp_getladdrs() when the socket was bound
    to an ephemeral port.  This is only true, if the address was
    not specified either.  So, fill in the port number correctly.
    
    Signed-off-by: Vlad Yasevich <[EMAIL PROTECTED]>
---
 net/sctp/socket.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 894c278..d47d578 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -4315,6 +4315,9 @@ static int sctp_copy_laddrs_old(struct sock *sk, __u16 
port,
                    (AF_INET6 == addr->a.sa.sa_family))
                        continue;
                memcpy(&temp, &addr->a, sizeof(temp));
+               if (!temp.v4.sin_port)
+                       temp.v4.sin_port = htons(port);
+
                sctp_get_pf_specific(sk->sk_family)->addr_v4map(sctp_sk(sk),
                                                                &temp);
                addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
@@ -4347,6 +4350,9 @@ static int sctp_copy_laddrs(struct sock *sk, __u16 port, 
void *to,
                    (AF_INET6 == addr->a.sa.sa_family))
                        continue;
                memcpy(&temp, &addr->a, sizeof(temp));
+               if (!temp.v4.sin_port)
+                       temp.v4.sin_port = htons(port);
+
                sctp_get_pf_specific(sk->sk_family)->addr_v4map(sctp_sk(sk),
                                                                &temp);
                addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to