mirror of https://gitee.com/openkylin/linux.git
[SCTP]: Switch sctp_cookie ->peer_addr to net-endian.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f235fca389
commit
9b1dfad011
|
@ -1227,6 +1227,7 @@ struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep,
|
|||
struct sk_buff *skb;
|
||||
sctp_scope_t scope;
|
||||
struct sctp_af *af;
|
||||
union sctp_addr tmp;
|
||||
|
||||
/* Create the bare association. */
|
||||
scope = sctp_scope(sctp_source(chunk));
|
||||
|
@ -1239,7 +1240,8 @@ struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep,
|
|||
af = sctp_get_af_specific(ipver2af(skb->nh.iph->version));
|
||||
if (unlikely(!af))
|
||||
goto fail;
|
||||
af->from_skb(&asoc->c.peer_addr, skb, 1);
|
||||
af->from_skb(&tmp, skb, 1);
|
||||
flip_to_n(&asoc->c.peer_addr, &tmp);
|
||||
nodata:
|
||||
return asoc;
|
||||
|
||||
|
@ -1439,7 +1441,7 @@ struct sctp_association *sctp_unpack_cookie(
|
|||
goto fail;
|
||||
}
|
||||
|
||||
if (ntohs(chunk->sctp_hdr->source) != bear_cookie->peer_addr.v4.sin_port ||
|
||||
if (chunk->sctp_hdr->source != bear_cookie->peer_addr.v4.sin_port ||
|
||||
ntohs(chunk->sctp_hdr->dest) != bear_cookie->my_port) {
|
||||
*error = -SCTP_IERROR_BAD_PORTS;
|
||||
goto fail;
|
||||
|
|
|
@ -598,6 +598,7 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(const struct sctp_endpoint *ep,
|
|||
struct sctp_ulpevent *ev, *ai_ev = NULL;
|
||||
int error = 0;
|
||||
struct sctp_chunk *err_chk_p;
|
||||
union sctp_addr tmp;
|
||||
|
||||
/* If the packet is an OOTB packet which is temporarily on the
|
||||
* control endpoint, respond with an ABORT.
|
||||
|
@ -665,8 +666,9 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(const struct sctp_endpoint *ep,
|
|||
*/
|
||||
peer_init = &chunk->subh.cookie_hdr->c.peer_init[0];
|
||||
|
||||
flip_to_h(&tmp, &chunk->subh.cookie_hdr->c.peer_addr);
|
||||
if (!sctp_process_init(new_asoc, chunk->chunk_hdr->type,
|
||||
&chunk->subh.cookie_hdr->c.peer_addr,
|
||||
&tmp,
|
||||
peer_init, GFP_ATOMIC))
|
||||
goto nomem_init;
|
||||
|
||||
|
|
Loading…
Reference in New Issue