From 9d360e93cb2688f3fb8c37fd8e76e2a02e2d12bd Mon Sep 17 00:00:00 2001 From: Duncan Roe Date: Sun, 26 Jan 2020 15:02:02 +1100 Subject: 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 Signed-off-by: Pablo Neira Ayuso --- src/extra/pktbuff.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/extra/pktbuff.c') 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 */ -- cgit v1.2.3