MFP4: @177254
Add missing CURVNET_RESTORE() calls for multiple code paths, to stop leaking the currently cached vnet into callers and to the process. Sponsored by: The FreeBSD Foundation Sponsored by: CK Software GmbH MFC after: 4 days
This commit is contained in:
parent
c7fd54ae5a
commit
7fcd42cfee
@ -1454,6 +1454,7 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
|
||||
/* FALLSTHROUGH */
|
||||
|
||||
default:
|
||||
CURVNET_RESTORE();
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
@ -1461,6 +1462,7 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
|
||||
if (d->bd_sbuf != NULL || d->bd_hbuf != NULL ||
|
||||
d->bd_fbuf != NULL || d->bd_bif != NULL) {
|
||||
BPFD_UNLOCK(d);
|
||||
CURVNET_RESTORE();
|
||||
return (EBUSY);
|
||||
}
|
||||
d->bd_bufmode = *(u_int *)addr;
|
||||
@ -1468,13 +1470,16 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
|
||||
break;
|
||||
|
||||
case BIOCGETZMAX:
|
||||
return (bpf_ioctl_getzmax(td, d, (size_t *)addr));
|
||||
error = bpf_ioctl_getzmax(td, d, (size_t *)addr);
|
||||
break;
|
||||
|
||||
case BIOCSETZBUF:
|
||||
return (bpf_ioctl_setzbuf(td, d, (struct bpf_zbuf *)addr));
|
||||
error = bpf_ioctl_setzbuf(td, d, (struct bpf_zbuf *)addr);
|
||||
break;
|
||||
|
||||
case BIOCROTZBUF:
|
||||
return (bpf_ioctl_rotzbuf(td, d, (struct bpf_zbuf *)addr));
|
||||
error = bpf_ioctl_rotzbuf(td, d, (struct bpf_zbuf *)addr);
|
||||
break;
|
||||
}
|
||||
CURVNET_RESTORE();
|
||||
return (error);
|
||||
|
Loading…
Reference in New Issue
Block a user