sys_procctl(): zero the data buffer once, on syscall entry
and remove zeroing of it from specific functions. This way it is guaranteed that we do not leak kernel data. Suggested by: markj Reviewed by: emaste, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32513
This commit is contained in:
parent
56d5323b4d
commit
32026f5983
@ -171,7 +171,6 @@ reap_status(struct thread *td, struct proc *p, void *data)
|
||||
|
||||
rs = data;
|
||||
sx_assert(&proctree_lock, SX_LOCKED);
|
||||
bzero(rs, sizeof(*rs));
|
||||
if ((p->p_treeflag & P_TREE_REAPER) == 0) {
|
||||
reap = p->p_reaper;
|
||||
} else {
|
||||
@ -850,6 +849,8 @@ sys_procctl(struct thread *td, struct procctl_args *uap)
|
||||
if (uap->com == 0 || uap->com >= nitems(procctl_cmds_info))
|
||||
return (EINVAL);
|
||||
cmd_info = &procctl_cmds_info[uap->com];
|
||||
bzero(&x, sizeof(x));
|
||||
|
||||
if (cmd_info->copyin_sz > 0) {
|
||||
error = copyin(uap->data, &x, cmd_info->copyin_sz);
|
||||
if (error != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user