Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F109936065
D46935.id144585.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D46935.id144585.diff
View Options
diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h
--- a/sys/net/pfvar.h
+++ b/sys/net/pfvar.h
@@ -2510,8 +2510,7 @@
struct pf_pdesc *);
bool pf_syncookie_check(struct pf_pdesc *);
u_int8_t pf_syncookie_validate(struct pf_pdesc *);
-struct mbuf * pf_syncookie_recreate_syn(int,
- struct pf_pdesc *);
+struct mbuf * pf_syncookie_recreate_syn(struct pf_pdesc *);
VNET_DECLARE(struct pf_kstatus, pf_status);
#define V_pf_status VNET(pf_status)
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -8633,10 +8633,8 @@
static int
pf_setup_pdesc(sa_family_t af, int dir, struct pf_pdesc *pd, struct mbuf **m0,
- u_short *action, u_short *reason, struct pfi_kkif *kif, struct pf_krule **a,
- struct pf_krule **r, struct pf_kstate **s, struct pf_kruleset **ruleset,
- int *off, int *hdrlen, struct inpcb *inp,
- struct pf_rule_actions *default_actions)
+ u_short *action, u_short *reason, struct pfi_kkif *kif, int *off,
+ int *hdrlen, struct pf_rule_actions *default_actions)
{
struct mbuf *m = *m0;
@@ -8796,19 +8794,6 @@
}
switch (pd->virtual_proto) {
- case PF_VPROTO_FRAGMENT:
- /*
- * handle fragments that aren't reassembled by
- * normalization
- */
- if (kif == NULL || r == NULL) /* pflog */
- *action = PF_DROP;
- else
- *action = pf_test_rule(r, s, kif, m, *off, pd, a,
- ruleset, inp, *hdrlen);
- if (*action != PF_PASS)
- REASON_SET(reason, PFRES_FRAG);
- return (-1);
case IPPROTO_TCP: {
struct tcphdr *th = &pd->hdr.tcp;
@@ -9094,8 +9079,8 @@
return (PF_PASS);
}
- if (pf_setup_pdesc(af, dir, &pd, m0, &action, &reason, kif, &a, &r,
- &s, &ruleset, &off, &hdrlen, inp, default_actions) == -1) {
+ if (pf_setup_pdesc(af, dir, &pd, m0, &action, &reason,
+ kif, &off, &hdrlen, default_actions) == -1) {
if (action != PF_PASS)
pd.act.log |= PF_LOG_FORCE;
goto done;
@@ -9125,7 +9110,21 @@
m_tag_delete(m, mtag);
}
- switch (pd.proto) {
+ switch (pd.virtual_proto) {
+ case PF_VPROTO_FRAGMENT:
+ /*
+ * handle fragments that aren't reassembled by
+ * normalization
+ */
+ if (kif == NULL || r == NULL) /* pflog */
+ action = PF_DROP;
+ else
+ action = pf_test_rule(&r, &s, kif, m, off, &pd, &a,
+ &ruleset, inp, hdrlen);
+ if (action != PF_PASS)
+ REASON_SET(&reason, PFRES_FRAG);
+ break;
+
case IPPROTO_TCP: {
/* Respond to SYN with a syncookie. */
if ((pd.hdr.tcp.th_flags & (TH_SYN|TH_ACK|TH_RST)) == TH_SYN &&
@@ -9154,7 +9153,7 @@
pd.dir == PF_IN) {
struct mbuf *msyn;
- msyn = pf_syncookie_recreate_syn(off, &pd);
+ msyn = pf_syncookie_recreate_syn(&pd);
if (msyn == NULL) {
action = PF_DROP;
break;
diff --git a/sys/netpfil/pf/pf_syncookies.c b/sys/netpfil/pf/pf_syncookies.c
--- a/sys/netpfil/pf/pf_syncookies.c
+++ b/sys/netpfil/pf/pf_syncookies.c
@@ -498,7 +498,7 @@
}
struct mbuf *
-pf_syncookie_recreate_syn(int off, struct pf_pdesc *pd)
+pf_syncookie_recreate_syn(struct pf_pdesc *pd)
{
uint8_t wscale;
uint16_t mss;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Feb 12, 11:30 AM (17 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16609925
Default Alt Text
D46935.id144585.diff (3 KB)
Attached To
Mode
D46935: pf: move pf_test_rule() out of pf_setup_pdesc()
Attached
Detach File
Event Timeline
Log In to Comment