summaryrefslogtreecommitdiff
path: root/security/pf/files/patch-ag
diff options
context:
space:
mode:
Diffstat (limited to 'security/pf/files/patch-ag')
-rw-r--r--security/pf/files/patch-ag383
1 files changed, 0 insertions, 383 deletions
diff --git a/security/pf/files/patch-ag b/security/pf/files/patch-ag
deleted file mode 100644
index ed4cd5d7d904..000000000000
--- a/security/pf/files/patch-ag
+++ /dev/null
@@ -1,383 +0,0 @@
---- pf/pf_norm.c Fri Aug 29 03:31:24 2003
-+++ pf/pf_norm.c Fri Aug 29 03:40:58 2003
-@@ -117,10 +117,10 @@
- void pf_flush_fragments(void);
- void pf_free_fragment(struct pf_fragment *);
- struct pf_fragment *pf_find_fragment(struct ip *, struct pf_frag_tree *);
--struct mbuf *pf_reassemble(struct mbuf **, struct pf_fragment *,
-+struct mbuf *pf_reassemble(struct mbuf **, struct pf_fragment **,
- struct pf_frent *, int);
- struct mbuf *pf_fragcache(struct mbuf **, struct ip*,
-- struct pf_fragment *, int, int, int *);
-+ struct pf_fragment **, int, int, int *);
- u_int16_t pf_cksum_fixup(u_int16_t, u_int16_t, u_int16_t);
- int pf_normalize_tcp(int, struct ifnet *, struct mbuf *,
- int, int, void *, struct pf_pdesc *);
-@@ -385,7 +385,7 @@
- }
-
- struct mbuf *
--pf_reassemble(struct mbuf **m0, struct pf_fragment *frag,
-+pf_reassemble(struct mbuf **m0, struct pf_fragment **frag,
- struct pf_frent *frent, int mff)
- {
- struct mbuf *m = *m0, *m2;
-@@ -397,10 +397,10 @@
- u_int16_t max = ip->ip_len + off;
-
- #if defined(__FreeBSD__)
-- KASSERT((frag == NULL || BUFFER_FRAGMENTS(frag)),
-- ("! (frag == NULL || BUFFER_FRAGMENTS(frag)): %s", __FUNCTION__));
-+ KASSERT((*frag == NULL || BUFFER_FRAGMENTS(*frag)),
-+ ("! (*frag == NULL || BUFFER_FRAGMENTS(*frag)): %s", __FUNCTION__));
- #else
-- KASSERT(frag == NULL || BUFFER_FRAGMENTS(frag));
-+ KASSERT(*frag == NULL || BUFFER_FRAGMENTS(*frag));
- #endif
-
- /* Strip off ip header */
-@@ -408,38 +408,38 @@
- m->m_len -= hlen;
-
- /* Create a new reassembly queue for this packet */
-- if (frag == NULL) {
-+ if (*frag == NULL) {
- #if defined(__FreeBSD__)
-- frag = uma_zalloc(pf_frag_pl, M_NOWAIT);
-+ *frag = uma_zalloc(pf_frag_pl, M_NOWAIT);
- #else
-- frag = pool_get(&pf_frag_pl, PR_NOWAIT);
-+ *frag = pool_get(&pf_frag_pl, PR_NOWAIT);
- #endif
-- if (frag == NULL) {
-+ if (*frag == NULL) {
- pf_flush_fragments();
- #if defined(__FreeBSD__)
-- frag = uma_zalloc(pf_frag_pl, M_NOWAIT);
-+ *frag = uma_zalloc(pf_frag_pl, M_NOWAIT);
- #else
-- frag = pool_get(&pf_frag_pl, PR_NOWAIT);
-+ *frag = pool_get(&pf_frag_pl, PR_NOWAIT);
- #endif
-- if (frag == NULL)
-+ if (*frag == NULL)
- goto drop_fragment;
- }
-
-- frag->fr_flags = 0;
-- frag->fr_max = 0;
-- frag->fr_src = frent->fr_ip->ip_src;
-- frag->fr_dst = frent->fr_ip->ip_dst;
-- frag->fr_p = frent->fr_ip->ip_p;
-- frag->fr_id = frent->fr_ip->ip_id;
-+ (*frag)->fr_flags = 0;
-+ (*frag)->fr_max = 0;
-+ (*frag)->fr_src = frent->fr_ip->ip_src;
-+ (*frag)->fr_dst = frent->fr_ip->ip_dst;
-+ (*frag)->fr_p = frent->fr_ip->ip_p;
-+ (*frag)->fr_id = frent->fr_ip->ip_id;
- #if defined(__FreeBSD__)
-- frag->fr_timeout = time_second;
-+ (*frag)->fr_timeout = time_second;
- #else
-- frag->fr_timeout = time.tv_sec;
-+ (*frag)->fr_timeout = time.tv_sec;
- #endif
-- LIST_INIT(&frag->fr_queue);
-+ LIST_INIT(&(*frag)->fr_queue);
-
-- RB_INSERT(pf_frag_tree, &pf_frag_tree, frag);
-- TAILQ_INSERT_HEAD(&pf_fragqueue, frag, frag_next);
-+ RB_INSERT(pf_frag_tree, &pf_frag_tree, *frag);
-+ TAILQ_INSERT_HEAD(&pf_fragqueue, *frag, frag_next);
-
- /* We do not have a previous fragment */
- frep = NULL;
-@@ -450,7 +450,7 @@
- * Find a fragment after the current one:
- * - off contains the real shifted offset.
- */
-- LIST_FOREACH(frea, &frag->fr_queue, fr_next) {
-+ LIST_FOREACH(frea, &(*frag)->fr_queue, fr_next) {
- if (frea->fr_ip->ip_off > off)
- break;
- frep = frea;
-@@ -503,41 +503,41 @@
-
- insert:
- /* Update maximum data size */
-- if (frag->fr_max < max)
-- frag->fr_max = max;
-+ if ((*frag)->fr_max < max)
-+ (*frag)->fr_max = max;
- /* This is the last segment */
- if (!mff)
-- frag->fr_flags |= PFFRAG_SEENLAST;
-+ (*frag)->fr_flags |= PFFRAG_SEENLAST;
-
- if (frep == NULL)
-- LIST_INSERT_HEAD(&frag->fr_queue, frent, fr_next);
-+ LIST_INSERT_HEAD(&(*frag)->fr_queue, frent, fr_next);
- else
- LIST_INSERT_AFTER(frep, frent, fr_next);
-
- /* Check if we are completely reassembled */
-- if (!(frag->fr_flags & PFFRAG_SEENLAST))
-+ if (!((*frag)->fr_flags & PFFRAG_SEENLAST))
- return (NULL);
-
- /* Check if we have all the data */
- off = 0;
-- for (frep = LIST_FIRST(&frag->fr_queue); frep; frep = next) {
-+ for (frep = LIST_FIRST(&(*frag)->fr_queue); frep; frep = next) {
- next = LIST_NEXT(frep, fr_next);
-
- off += frep->fr_ip->ip_len;
-- if (off < frag->fr_max &&
-+ if (off < (*frag)->fr_max &&
- (next == NULL || next->fr_ip->ip_off != off)) {
- DPFPRINTF(("missing fragment at %d, next %d, max %d\n",
- off, next == NULL ? -1 : next->fr_ip->ip_off,
-- frag->fr_max));
-+ (*frag)->fr_max));
- return (NULL);
- }
- }
-- DPFPRINTF(("%d < %d?\n", off, frag->fr_max));
-- if (off < frag->fr_max)
-+ DPFPRINTF(("%d < %d?\n", off, (*frag)->fr_max));
-+ if (off < (*frag)->fr_max)
- return (NULL);
-
- /* We have all the data */
-- frent = LIST_FIRST(&frag->fr_queue);
-+ frent = LIST_FIRST(&(*frag)->fr_queue);
- #if defined(__FreeBSD__)
- KASSERT((frent != NULL), ("frent == NULL: %s", __FUNCTION__));
- #else
-@@ -545,7 +545,8 @@
- #endif
- if ((frent->fr_ip->ip_hl << 2) + off > IP_MAXPACKET) {
- DPFPRINTF(("drop: too big: %d\n", off));
-- pf_free_fragment(frag);
-+ pf_free_fragment(*frag);
-+ *frag = NULL;
- return (NULL);
- }
- next = LIST_NEXT(frent, fr_next);
-@@ -575,11 +576,12 @@
- m_cat(m, m2);
- }
-
-- ip->ip_src = frag->fr_src;
-- ip->ip_dst = frag->fr_dst;
-+ ip->ip_src = (*frag)->fr_src;
-+ ip->ip_dst = (*frag)->fr_dst;
-
- /* Remove from fragment queue */
-- pf_remove_fragment(frag);
-+ pf_remove_fragment(*frag);
-+ *frag = NULL;
-
- hlen = ip->ip_hl << 2;
- ip->ip_len = off + hlen;
-@@ -611,7 +613,7 @@
- }
-
- struct mbuf *
--pf_fragcache(struct mbuf **m0, struct ip *h, struct pf_fragment *frag, int mff,
-+pf_fragcache(struct mbuf **m0, struct ip *h, struct pf_fragment **frag, int mff,
- int drop, int *nomem)
- {
- struct mbuf *m = *m0;
-@@ -622,27 +624,27 @@
- int hosed = 0;
-
- #if defined(__FreeBSD__)
-- KASSERT((frag == NULL || !BUFFER_FRAGMENTS(frag)),
-- ("!(frag == NULL || !BUFFER_FRAGMENTS(frag)): %s", __FUNCTION__));
-+ KASSERT((*frag == NULL || !BUFFER_FRAGMENTS(*frag)),
-+ ("!(*frag == NULL || !BUFFER_FRAGMENTS(*frag)): %s", __FUNCTION__));
- #else
-- KASSERT(frag == NULL || !BUFFER_FRAGMENTS(frag));
-+ KASSERT(*frag == NULL || !BUFFER_FRAGMENTS(*frag));
- #endif
-
- /* Create a new range queue for this packet */
-- if (frag == NULL) {
-+ if (*frag == NULL) {
- #if defined(__FreeBSD__)
-- frag = uma_zalloc(pf_cache_pl, M_NOWAIT);
-+ *frag = uma_zalloc(pf_cache_pl, M_NOWAIT);
- #else
-- frag = pool_get(&pf_cache_pl, PR_NOWAIT);
-+ *frag = pool_get(&pf_cache_pl, PR_NOWAIT);
- #endif
-- if (frag == NULL) {
-+ if (*frag == NULL) {
- pf_flush_fragments();
- #if defined(__FreeBSD__)
-- frag = uma_zalloc(pf_cache_pl, M_NOWAIT);
-+ *frag = uma_zalloc(pf_cache_pl, M_NOWAIT);
- #else
-- frag = pool_get(&pf_cache_pl, PR_NOWAIT);
-+ *frag = pool_get(&pf_cache_pl, PR_NOWAIT);
- #endif
-- if (frag == NULL)
-+ if (*frag == NULL)
- goto no_mem;
- }
-
-@@ -654,33 +656,34 @@
- #endif
- if (cur == NULL) {
- #if defined(__FreeBSD__)
-- uma_zfree(pf_cache_pl, frag);
-+ uma_zfree(pf_cache_pl, *frag);
- #else
-- pool_put(&pf_cache_pl, frag);
-+ pool_put(&pf_cache_pl, *frag);
- #endif
-+ *frag = NULL;
- goto no_mem;
- }
- pf_ncache++;
-
-- frag->fr_flags = PFFRAG_NOBUFFER;
-- frag->fr_max = 0;
-- frag->fr_src = h->ip_src;
-- frag->fr_dst = h->ip_dst;
-- frag->fr_p = h->ip_p;
-- frag->fr_id = h->ip_id;
-+ (*frag)->fr_flags = PFFRAG_NOBUFFER;
-+ (*frag)->fr_max = 0;
-+ (*frag)->fr_src = h->ip_src;
-+ (*frag)->fr_dst = h->ip_dst;
-+ (*frag)->fr_p = h->ip_p;
-+ (*frag)->fr_id = h->ip_id;
- #if defined(__FreeBSD__)
-- frag->fr_timeout = time_second;
-+ (*frag)->fr_timeout = time_second;
- #else
-- frag->fr_timeout = time.tv_sec;
-+ (*frag)->fr_timeout = time.tv_sec;
- #endif
-
- cur->fr_off = off;
- cur->fr_end = max;
-- LIST_INIT(&frag->fr_cache);
-- LIST_INSERT_HEAD(&frag->fr_cache, cur, fr_next);
-+ LIST_INIT(&(*frag)->fr_cache);
-+ LIST_INSERT_HEAD(&(*frag)->fr_cache, cur, fr_next);
-
-- RB_INSERT(pf_frag_tree, &pf_cache_tree, frag);
-- TAILQ_INSERT_HEAD(&pf_cachequeue, frag, frag_next);
-+ RB_INSERT(pf_frag_tree, &pf_cache_tree, *frag);
-+ TAILQ_INSERT_HEAD(&pf_cachequeue, *frag, frag_next);
-
- DPFPRINTF(("fragcache[%d]: new %d-%d\n", h->ip_id, off, max));
-
-@@ -692,7 +695,7 @@
- * - off contains the real shifted offset.
- */
- frp = NULL;
-- LIST_FOREACH(fra, &frag->fr_cache, fr_next) {
-+ LIST_FOREACH(fra, &(*frag)->fr_cache, fr_next) {
- if (fra->fr_off > off)
- break;
- frp = fra;
-@@ -929,21 +932,22 @@
-
- pass:
- /* Update maximum data size */
-- if (frag->fr_max < max)
-- frag->fr_max = max;
-+ if ((*frag)->fr_max < max)
-+ (*frag)->fr_max = max;
-
- /* This is the last segment */
- if (!mff)
-- frag->fr_flags |= PFFRAG_SEENLAST;
-+ (*frag)->fr_flags |= PFFRAG_SEENLAST;
-
- /* Check if we are completely reassembled */
-- if ((frag->fr_flags & PFFRAG_SEENLAST) &&
-- LIST_FIRST(&frag->fr_cache)->fr_off == 0 &&
-- LIST_FIRST(&frag->fr_cache)->fr_end == frag->fr_max) {
-+ if (((*frag)->fr_flags & PFFRAG_SEENLAST) &&
-+ LIST_FIRST(&(*frag)->fr_cache)->fr_off == 0 &&
-+ LIST_FIRST(&(*frag)->fr_cache)->fr_end == (*frag)->fr_max) {
- /* Remove from fragment queue */
- DPFPRINTF(("fragcache[%d]: done 0-%d\n", h->ip_id,
-- frag->fr_max));
-- pf_free_fragment(frag);
-+ (*frag)->fr_max));
-+ pf_free_fragment(*frag);
-+ *frag = NULL;
- }
-
- return (m);
-@@ -952,8 +956,8 @@
- *nomem = 1;
-
- /* Still need to pay attention to !IP_MF */
-- if (!mff && frag)
-- frag->fr_flags |= PFFRAG_SEENLAST;
-+ if (!mff && *frag != NULL)
-+ (*frag)->fr_flags |= PFFRAG_SEENLAST;
-
- m_freem(m);
- return (NULL);
-@@ -961,15 +965,15 @@
- drop_fragment:
-
- /* Still need to pay attention to !IP_MF */
-- if (!mff && frag)
-- frag->fr_flags |= PFFRAG_SEENLAST;
-+ if (!mff && *frag != NULL)
-+ (*frag)->fr_flags |= PFFRAG_SEENLAST;
-
- if (drop) {
- /* This fragment has been deemed bad. Don't reass */
-- if ((frag->fr_flags & PFFRAG_DROP) == 0)
-+ if (((*frag)->fr_flags & PFFRAG_DROP) == 0)
- DPFPRINTF(("fragcache[%d]: dropping overall fragment\n",
- h->ip_id));
-- frag->fr_flags |= PFFRAG_DROP;
-+ (*frag)->fr_flags |= PFFRAG_DROP;
- }
-
- m_freem(m);
-@@ -1085,12 +1089,12 @@
-
- /* Might return a completely reassembled mbuf, or NULL */
- DPFPRINTF(("reass frag %d @ %d-%d\n", h->ip_id, fragoff, max));
-- *m0 = m = pf_reassemble(m0, frag, frent, mff);
-+ *m0 = m = pf_reassemble(m0, &frag, frent, mff);
-
- if (m == NULL)
- return (PF_DROP);
-
-- if (frag && (frag->fr_flags & PFFRAG_DROP))
-+ if (frag != NULL && (frag->fr_flags & PFFRAG_DROP))
- goto drop;
-
- h = mtod(m, struct ip *);
-@@ -1119,7 +1123,7 @@
- goto bad;
- }
-
-- *m0 = m = pf_fragcache(m0, h, frag, mff,
-+ *m0 = m = pf_fragcache(m0, h, &frag, mff,
- (r->rule_flag & PFRULE_FRAGDROP) ? 1 : 0, &nomem);
- if (m == NULL) {
- if (nomem)
-@@ -1135,7 +1139,7 @@
- goto no_mem;
- m_tag_prepend(m, mtag);
- }
-- if (frag && (frag->fr_flags & PFFRAG_DROP))
-+ if (frag != NULL && (frag->fr_flags & PFFRAG_DROP))
- goto drop;
- goto fragment_pass;
- }