Hi,
Since 2015 pf_rollback_rules always returns 0. Make it void.
OK?
mbuhl
Index: sys/net/pf_ioctl.c
===================================================================
RCS file: /cvs/src/sys/net/pf_ioctl.c,v
retrieving revision 1.376
diff -u -p -r1.376 pf_ioctl.c
--- sys/net/pf_ioctl.c 4 Apr 2022 12:57:36 -0000 1.376
+++ sys/net/pf_ioctl.c 7 Apr 2022 13:14:28 -0000
@@ -93,7 +93,7 @@ int pfopen(dev_t, int, int, struct pr
int pfclose(dev_t, int, int, struct proc *);
int pfioctl(dev_t, u_long, caddr_t, int, struct proc *);
int pf_begin_rules(u_int32_t *, const char *);
-int pf_rollback_rules(u_int32_t, char *);
+void pf_rollback_rules(u_int32_t, char *);
void pf_remove_queues(void);
int pf_commit_queues(void);
void pf_free_queues(struct pf_queuehead *);
@@ -537,7 +537,7 @@ pf_begin_rules(u_int32_t *ticket, const
return (0);
}
-int
+void
pf_rollback_rules(u_int32_t ticket, char *anchor)
{
struct pf_ruleset *rs;
@@ -546,7 +546,7 @@ pf_rollback_rules(u_int32_t ticket, char
rs = pf_find_ruleset(anchor);
if (rs == NULL || !rs->rules.inactive.open ||
rs->rules.inactive.ticket != ticket)
- return (0);
+ return;
while ((rule = TAILQ_FIRST(rs->rules.inactive.ptr)) != NULL) {
pf_rm_rule(rs->rules.inactive.ptr, rule);
rs->rules.inactive.rcount--;
@@ -555,11 +555,9 @@ pf_rollback_rules(u_int32_t ticket, char
/* queue defs only in the main ruleset */
if (anchor[0])
- return (0);
+ return;
pf_free_queues(pf_queues_inactive);
-
- return (0);
}
void
@@ -2597,14 +2595,7 @@ pfioctl(dev_t dev, u_long cmd, caddr_t a
}
break;
case PF_TRANS_RULESET:
- if ((error = pf_rollback_rules(ioe->ticket,
- ioe->anchor))) {
- PF_UNLOCK();
- NET_UNLOCK();
- free(table, M_TEMP, sizeof(*table));
- free(ioe, M_TEMP, sizeof(*ioe));
- goto fail; /* really bad */
- }
+ pf_rollback_rules(ioe->ticket, ioe->anchor);
break;
default:
PF_UNLOCK();