Revision 1.231 removed a line from DIOCCHANGERULE case in pf_ioctl.c which
was checking pcr->pool_ticket:

changed

if (!(pcr->action == PF_CHANGE_REMOVE ||
pcr->action == PF_CHANGE_GET_TICKET) &&
pcr->pool_ticket != ticket_pabuf) {
        error = EBUSY;
        break;
}

to

if (!(pcr->action == PF_CHANGE_REMOVE ||
pcr->action == PF_CHANGE_GET_TICKET)) {
        error = EBUSY;
        break;
}

Is this check is still needed? Similar checks done just a few lines below
and this check
makes DIOCHANGERULE ioctl unusable for actions other than PF_CHANGE_REMOVE.
Seems like a bug to me.

Reply via email to