netfilter: conntrack: Only need first 4 bytes to get l4proto ports
We only need first 4 bytes instead of 8 bytes to get the ports of tcp/udp/dccp/sctp/udplite in their pkt_to_tuple function. Signed-off-by: Gao Feng <fgao@ikuai8.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
f08aff444a
commit
e5e693ab49
|
@ -402,7 +402,8 @@ static bool dccp_pkt_to_tuple(const struct sk_buff *skb, unsigned int dataoff,
|
|||
{
|
||||
struct dccp_hdr _hdr, *dh;
|
||||
|
||||
dh = skb_header_pointer(skb, dataoff, sizeof(_hdr), &_hdr);
|
||||
/* Actually only need first 4 bytes to get ports. */
|
||||
dh = skb_header_pointer(skb, dataoff, 4, &_hdr);
|
||||
if (dh == NULL)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -161,8 +161,8 @@ static bool sctp_pkt_to_tuple(const struct sk_buff *skb, unsigned int dataoff,
|
|||
const struct sctphdr *hp;
|
||||
struct sctphdr _hdr;
|
||||
|
||||
/* Actually only need first 8 bytes. */
|
||||
hp = skb_header_pointer(skb, dataoff, 8, &_hdr);
|
||||
/* Actually only need first 4 bytes to get ports. */
|
||||
hp = skb_header_pointer(skb, dataoff, 4, &_hdr);
|
||||
if (hp == NULL)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -282,8 +282,8 @@ static bool tcp_pkt_to_tuple(const struct sk_buff *skb, unsigned int dataoff,
|
|||
const struct tcphdr *hp;
|
||||
struct tcphdr _hdr;
|
||||
|
||||
/* Actually only need first 8 bytes. */
|
||||
hp = skb_header_pointer(skb, dataoff, 8, &_hdr);
|
||||
/* Actually only need first 4 bytes to get ports. */
|
||||
hp = skb_header_pointer(skb, dataoff, 4, &_hdr);
|
||||
if (hp == NULL)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -44,8 +44,8 @@ static bool udp_pkt_to_tuple(const struct sk_buff *skb,
|
|||
const struct udphdr *hp;
|
||||
struct udphdr _hdr;
|
||||
|
||||
/* Actually only need first 8 bytes. */
|
||||
hp = skb_header_pointer(skb, dataoff, sizeof(_hdr), &_hdr);
|
||||
/* Actually only need first 4 bytes to get ports. */
|
||||
hp = skb_header_pointer(skb, dataoff, 4, &_hdr);
|
||||
if (hp == NULL)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -54,7 +54,8 @@ static bool udplite_pkt_to_tuple(const struct sk_buff *skb,
|
|||
const struct udphdr *hp;
|
||||
struct udphdr _hdr;
|
||||
|
||||
hp = skb_header_pointer(skb, dataoff, sizeof(_hdr), &_hdr);
|
||||
/* Actually only need first 4 bytes to get ports. */
|
||||
hp = skb_header_pointer(skb, dataoff, 4, &_hdr);
|
||||
if (hp == NULL)
|
||||
return false;
|
||||
|
||||
|
|
Loading…
Reference in New Issue