Same logic and argument as for the parent *S ioctl unlocked in r1.400,
might as well have committed them together:
Both ticket and number of queues stem from the pf_queues_active list which
is effectively static to pf_ioctl.c and fully protected by the pf lock.
OK sashan
-/* $OpenBSD: pf_ioctl.c,v 1.401 2023/04/28 14:08:38 sashan Exp $ */
+/* $OpenBSD: pf_ioctl.c,v 1.402 2023/04/29 10:25:32 kn Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
struct pf_queuespec *qs;
u_int32_t nr = 0;
- NET_LOCK();
PF_LOCK();
if (pq->ticket != pf_main_ruleset.rules.active.version) {
error = EBUSY;
PF_UNLOCK();
- NET_UNLOCK();
goto fail;
}
if (qs == NULL) {
error = EBUSY;
PF_UNLOCK();
- NET_UNLOCK();
goto fail;
}
memcpy(&pq->queue, qs, sizeof(pq->queue));
PF_UNLOCK();
- NET_UNLOCK();
break;
}