[PATCH net-next] ppp: clean up endianness conversions
From: Julian Wiedmann <hidden>
Date: 2021-01-07 14:41:05
sparse complains about some harmless endianness issues:
drivers/net/ppp/pptp.c:281:21: warning: incorrect type in assignment (different base types) drivers/net/ppp/pptp.c:281:21: expected unsigned int [usertype] ack drivers/net/ppp/pptp.c:281:21: got restricted __be32 drivers/net/ppp/pptp.c:283:23: warning: cast to restricted __be32
Here 'ack' is assigned a value in network-order, and then also the byte-swapped value in host-order. Clean this up by doing the byte-swap as part of the assignment.
drivers/net/ppp/pptp.c:358:26: warning: cast from restricted __be16 drivers/net/ppp/pptp.c:358:26: warning: incorrect type in argument 1 (different base types) drivers/net/ppp/pptp.c:358:26: expected unsigned short [usertype] call_id drivers/net/ppp/pptp.c:358:26: got restricted __be16 [usertype]
Here we use the wrong flavour of byte-swap. Use ntohs(), which of course gives the same result. Cc: Dmitry Kozlov <redacted> Signed-off-by: Julian Wiedmann <redacted> --- drivers/net/ppp/pptp.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c
index ee5058445d06..0fe78826c8fa 100644
--- a/drivers/net/ppp/pptp.c
+++ b/drivers/net/ppp/pptp.c@@ -278,10 +278,8 @@ static int pptp_rcv_core(struct sock *sk, struct sk_buff *skb) header = (struct pptp_gre_header *)(skb->data); /* ack in different place if S = 0 */ - ack = GRE_IS_SEQ(header->gre_hd.flags) ? header->ack : header->seq; - - ack = ntohl(ack); - + ack = GRE_IS_SEQ(header->gre_hd.flags) ? ntohl(header->ack) : + ntohl(header->seq); if (ack > opt->ack_recv) opt->ack_recv = ack; /* also handle sequence number wrap-around */
@@ -355,7 +353,7 @@ static int pptp_rcv(struct sk_buff *skb) /* if invalid, discard this packet */ goto drop; - po = lookup_chan(htons(header->call_id), iph->saddr); + po = lookup_chan(ntohs(header->call_id), iph->saddr); if (po) { skb_dst_drop(skb); nf_reset_ct(skb);
--
2.17.1