diff options
author | Jiri Kosina <jkosina@suse.cz> | 2019-03-05 15:24:43 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2019-03-05 15:24:43 +0100 |
commit | 2c2e5bb97544198a62e4edbf6aca5dd201979564 (patch) | |
tree | ffb927ea311d86aeee3a0ef561d6218280c038cb /net/ipv4/ip_sockglue.c | |
parent | 9b6872a123862cecd19a958f08eb9848b6a4240d (diff) | |
parent | 6311d329e12a358a9813d2e929d26fbc5a4c73c2 (diff) | |
download | talos-op-linux-2c2e5bb97544198a62e4edbf6aca5dd201979564.tar.gz talos-op-linux-2c2e5bb97544198a62e4edbf6aca5dd201979564.zip |
Merge branch 'for-5.1/hid-asus' into for-linus
Asus Transbook T100CHI and T90CHI support from NOGUCHI Hiroshi
Diffstat (limited to 'net/ipv4/ip_sockglue.c')
-rw-r--r-- | net/ipv4/ip_sockglue.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index fffcc130900e..82f341e84fae 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -148,19 +148,17 @@ static void ip_cmsg_recv_security(struct msghdr *msg, struct sk_buff *skb) static void ip_cmsg_recv_dstaddr(struct msghdr *msg, struct sk_buff *skb) { + __be16 _ports[2], *ports; struct sockaddr_in sin; - __be16 *ports; - int end; - - end = skb_transport_offset(skb) + 4; - if (end > 0 && !pskb_may_pull(skb, end)) - return; /* All current transport protocols have the port numbers in the * first four bytes of the transport header and this function is * written with this assumption in mind. */ - ports = (__be16 *)skb_transport_header(skb); + ports = skb_header_pointer(skb, skb_transport_offset(skb), + sizeof(_ports), &_ports); + if (!ports) + return; sin.sin_family = AF_INET; sin.sin_addr.s_addr = ip_hdr(skb)->daddr; |