diff options
author | Duncan Roe <duncan_roe@optusnet.com.au> | 2020-01-26 15:02:02 +1100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-01-29 18:36:32 +0100 |
commit | 9d360e93cb2688f3fb8c37fd8e76e2a02e2d12bd (patch) | |
tree | dc26fca2742bad9dfca16fea4af068ed5ac6175e /src/extra/pktbuff.c | |
parent | ba3a63eefbfeeafc95cb401777ba049af32a2b4d (diff) |
Simplify struct pkt_buff: remove tail
In struct pkt_buff, we only ever needed any 2 of len, data and tail.
This has caused bugs in the past, e.g. commit 8a4316f31.
Delete tail, and where the value of pktb->tail was required,
use new pktb_tail() function.
Signed-off-by: Duncan Roe <duncan_roe@optusnet.com.au>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/extra/pktbuff.c')
-rw-r--r-- | src/extra/pktbuff.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/extra/pktbuff.c b/src/extra/pktbuff.c index c95384f..6dd0ca9 100644 --- a/src/extra/pktbuff.c +++ b/src/extra/pktbuff.c @@ -67,7 +67,6 @@ struct pkt_buff *pktb_alloc(int family, void *data, size_t len, size_t extra) pktb->data_len = len + extra; pktb->data = pkt_data; - pktb->tail = pktb->data + len; switch(family) { case AF_INET: @@ -190,7 +189,6 @@ void pktb_pull(struct pkt_buff *pktb, unsigned int len) EXPORT_SYMBOL void pktb_put(struct pkt_buff *pktb, unsigned int len) { - pktb->tail += len; pktb->len += len; } @@ -203,7 +201,6 @@ EXPORT_SYMBOL void pktb_trim(struct pkt_buff *pktb, unsigned int len) { pktb->len = len; - pktb->tail = pktb->data + len; } /** @@ -279,7 +276,6 @@ static int pktb_expand_tail(struct pkt_buff *pktb, int extra) return 0; pktb->len += extra; - pktb->tail = pktb->tail + extra; return 1; } @@ -334,7 +330,7 @@ int pktb_mangle(struct pkt_buff *pktb, /* move post-replacement */ memmove(data + match_offset + rep_len, data + match_offset + match_len, - pktb->tail - (pktb->network_header + dataoff + + pktb_tail(pktb) - (pktb->network_header + dataoff + match_offset + match_len)); /* insert data from buffer */ |