浏览代码

[SCTP]: sctp_transport_{init,new}() switched to net-endian.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Al Viro 18 年之前
父节点
当前提交
b488c7dd58
共有 3 个文件被更改,包括 6 次插入4 次删除
  1. 1 1
      net/sctp/associola.c
  2. 3 1
      net/sctp/sm_statefuns.c
  3. 2 2
      net/sctp/transport.c

+ 1 - 1
net/sctp/associola.c

@@ -564,7 +564,7 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
 		return peer;
 	}
 
-	peer = sctp_transport_new(addr, gfp);
+	peer = sctp_transport_new(&tmp, gfp);
 	if (!peer)
 		return NULL;
 

+ 3 - 1
net/sctp/sm_statefuns.c

@@ -5105,6 +5105,7 @@ static struct sctp_packet *sctp_ootb_pkt_new(const struct sctp_association *asoc
 	__u16 sport;
 	__u16 dport;
 	__u32 vtag;
+	union sctp_addr tmp;
 
 	/* Get the source and destination port from the inbound packet.  */
 	sport = ntohs(chunk->sctp_hdr->dest);
@@ -5135,7 +5136,8 @@ static struct sctp_packet *sctp_ootb_pkt_new(const struct sctp_association *asoc
 	}
 
 	/* Make a transport for the bucket, Eliza... */
-	transport = sctp_transport_new(sctp_source(chunk), GFP_ATOMIC);
+	flip_to_n(&tmp, sctp_source(chunk));
+	transport = sctp_transport_new(&tmp, GFP_ATOMIC);
 	if (!transport)
 		goto nomem;
 

+ 2 - 2
net/sctp/transport.c

@@ -61,8 +61,8 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
 						  gfp_t gfp)
 {
 	/* Copy in the address.  */
-	peer->ipaddr_h = *addr;
-	flip_to_n(&peer->ipaddr, &peer->ipaddr_h);
+	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;