mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
MFC r207278:
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
This commit is contained in:
parent
7f6b24dccf
commit
6419e07f19
1 changed files with 8 additions and 3 deletions
|
|
@ -1328,6 +1328,7 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
|
|||
/* FALLSTHROUGH */
|
||||
|
||||
default:
|
||||
CURVNET_RESTORE();
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
|
|
@ -1335,6 +1336,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;
|
||||
|
|
@ -1342,13 +1344,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 a new issue