Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0304ff8a2d5f57defb011c7f261b4c1b3eff96d1
Commit:     0304ff8a2d5f57defb011c7f261b4c1b3eff96d1
Parent:     ea2bc483ff5caada7c4aa0d5fbf87d3a6590273d
Author:     Paolo Galtieri <[EMAIL PROTECTED]>
AuthorDate: Tue Apr 17 12:52:36 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Tue Apr 17 13:13:42 2007 -0700

    [SCTP]: Unmap v4mapped addresses during SCTP_BINDX_REM_ADDR operation.
    
    During the sctp_bindx() call to add additional addresses to the
    endpoint, any v4mapped addresses are converted and stored as regular
    v4 addresses.  However, when trying to remove these addresses, the
    v4mapped addresses are not converted and the operation fails.  This
    patch unmaps the addresses on during the remove operation as well.
    
    Signed-off-by: Paolo Galtieri <[EMAIL PROTECTED]>
    Signed-off-by: Vlad Yasevich <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[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 523e73e..a1d026f 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -627,6 +627,12 @@ int sctp_bindx_rem(struct sock *sk, struct sockaddr 
*addrs, int addrcnt)
                        retval = -EINVAL;
                        goto err_bindx_rem;
                }
+
+               if (!af->addr_valid(sa_addr, sp, NULL)) {
+                       retval = -EADDRNOTAVAIL;
+                       goto err_bindx_rem;
+               }
+
                if (sa_addr->v4.sin_port != htons(bp->port)) {
                        retval = -EINVAL;
                        goto err_bindx_rem;
-
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