summaryrefslogtreecommitdiffstats
path: root/src/extra/pktbuff.c
diff options
context:
space:
mode:
authorDuncan Roe <duncan_roe@optusnet.com.au>2020-01-26 15:02:02 +1100
committerPablo Neira Ayuso <pablo@netfilter.org>2020-01-29 18:36:32 +0100
commit9d360e93cb2688f3fb8c37fd8e76e2a02e2d12bd (patch)
treedc26fca2742bad9dfca16fea4af068ed5ac6175e /src/extra/pktbuff.c
parentba3a63eefbfeeafc95cb401777ba049af32a2b4d (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.c6
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 */