Jelajahi Sumber

[SCTP]: Switch sctp_chunk ->dest 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 tahun lalu
induk
melakukan
16b0a03033
2 mengubah file dengan 3 tambahan dan 7 penghapusan
  1. 2 4
      net/sctp/sm_make_chunk.c
  2. 1 3
      net/sctp/sm_statefuns.c

+ 2 - 4
net/sctp/sm_make_chunk.c

@@ -1033,7 +1033,7 @@ void sctp_init_addrs(struct sctp_chunk *chunk, union sctp_addr *src,
 {
 	memcpy(&chunk->source, src, sizeof(union sctp_addr));
 	flip_to_h(&chunk->source_h, &chunk->source);
-	flip_to_h(&chunk->dest, dest);
+	memcpy(&chunk->dest, dest, sizeof(union sctp_addr));
 }
 
 /* Extract the source address from a chunk.  */
@@ -1507,9 +1507,7 @@ no_hmac:
 
 	/* Also, add the destination address. */
 	if (list_empty(&retval->base.bind_addr.address_list)) {
-		union sctp_addr tmp;
-		flip_to_n(&tmp, &chunk->dest);
-		sctp_add_bind_addr(&retval->base.bind_addr, &tmp, 1,
+		sctp_add_bind_addr(&retval->base.bind_addr, &chunk->dest, 1,
 				   GFP_ATOMIC);
 	}
 

+ 1 - 3
net/sctp/sm_statefuns.c

@@ -5103,7 +5103,6 @@ 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);
@@ -5141,8 +5140,7 @@ static struct sctp_packet *sctp_ootb_pkt_new(const struct sctp_association *asoc
 	/* Cache a route for the transport with the chunk's destination as
 	 * the source address.
 	 */
-	flip_to_n(&tmp, &chunk->dest);
-	sctp_transport_route(transport, &tmp,
+	sctp_transport_route(transport, (union sctp_addr *)&chunk->dest,
 			     sctp_sk(sctp_get_ctl_sock()));
 
 	packet = sctp_packet_init(&transport->packet, transport, sport, dport);