]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/sctp/transport.c
[PATCH] fs: fix nobh data leak
[mv-sheeva.git] / net / sctp / transport.c
index d1b6834a3a4748216067140e426c8412a69aca3e..a596f5308cb18c89cd63836f95d65aef1f630b58 100644 (file)
@@ -62,13 +62,11 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
 {
        /* Copy in the address.  */
        peer->ipaddr = *addr;
-       flip_to_h(&peer->ipaddr_h, &peer->ipaddr);
        peer->af_specific = sctp_get_af_specific(addr->sa.sa_family);
        peer->asoc = NULL;
 
        peer->dst = NULL;
        memset(&peer->saddr, 0, sizeof(union sctp_addr));
-       memset(&peer->saddr_h, 0, sizeof(union sctp_addr));
 
        /* From 6.3.1 RTO Calculation:
         *
@@ -132,9 +130,9 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
 struct sctp_transport *sctp_transport_new(const union sctp_addr *addr,
                                          gfp_t gfp)
 {
-        struct sctp_transport *transport;
+       struct sctp_transport *transport;
 
-        transport = t_new(struct sctp_transport, gfp);
+       transport = t_new(struct sctp_transport, gfp);
        if (!transport)
                goto fail;
 
@@ -187,7 +185,7 @@ static void sctp_transport_destroy(struct sctp_transport *transport)
        if (transport->asoc)
                sctp_association_put(transport->asoc);
 
-        sctp_packet_free(&transport->packet);
+       sctp_packet_free(&transport->packet);
 
        dst_release(transport->dst);
        kfree(transport);
@@ -261,7 +259,6 @@ void sctp_transport_route(struct sctp_transport *transport,
        else
                af->get_saddr(asoc, dst, daddr, &transport->saddr);
 
-       flip_to_h(&transport->saddr_h, &transport->saddr);
        transport->dst = dst;
        if ((transport->param_flags & SPP_PMTUD_DISABLE) && transport->pathmtu) {
                return;
@@ -271,9 +268,9 @@ void sctp_transport_route(struct sctp_transport *transport,
 
                /* Initialize sk->sk_rcv_saddr, if the transport is the
                 * association's active path for getsockname().
-                */ 
+                */
                if (asoc && (transport == asoc->peer.active_path))
-                       opt->pf->af->to_sk_saddr(&transport->saddr_h,
+                       opt->pf->af->to_sk_saddr(&transport->saddr,
                                                 asoc->base.sk);
        } else
                transport->pathmtu = SCTP_DEFAULT_MAXSEGMENT;
@@ -462,8 +459,8 @@ void sctp_transport_lower_cwnd(struct sctp_transport *transport,
                 * destination address(es) to which the missing DATA chunks
                 * were last sent, according to the formula described in
                 * Section 7.2.3.
-                *
-                * RFC 2960 7.2.3, sctpimpguide Upon detection of packet
+                *
+                * RFC 2960 7.2.3, sctpimpguide Upon detection of packet
                 * losses from SACK (see Section 7.2.4), An endpoint
                 * should do the following:
                 *      ssthresh = max(cwnd/2, 4*MTU)
@@ -491,7 +488,7 @@ void sctp_transport_lower_cwnd(struct sctp_transport *transport,
                if ((jiffies - transport->last_time_ecne_reduced) >
                    transport->rtt) {
                        transport->ssthresh = max(transport->cwnd/2,
-                                                 4*transport->asoc->pathmtu);
+                                                 4*transport->asoc->pathmtu);
                        transport->cwnd = transport->ssthresh;
                        transport->last_time_ecne_reduced = jiffies;
                }