X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/91447636331957f3d9b5ca5b508f07c526b0074d..743b15655a24ee3fe9f458f383003e011db0558f:/bsd/kern/kern_control.c?ds=sidebyside diff --git a/bsd/kern/kern_control.c b/bsd/kern/kern_control.c index 955bbd375..95c9cbe2e 100644 --- a/bsd/kern/kern_control.c +++ b/bsd/kern/kern_control.c @@ -637,6 +637,8 @@ ctl_ctloutput(struct socket *so, struct sockopt *sopt) MALLOC(data, void *, sopt->sopt_valsize, M_TEMP, M_WAITOK); if (data == NULL) return(ENOMEM); + /* 4108337 - copy in data for get socket option */ + error = sooptcopyin(sopt, data, sopt->sopt_valsize, sopt->sopt_valsize); } len = sopt->sopt_valsize; socket_unlock(so, 0); @@ -770,7 +772,7 @@ ctl_register(struct kern_ctl_reg *userkctl, kern_ctl_ref *kctlref) userkctl->ctl_sendsize = CTL_SENDSIZE; kctl->sendbufsize = userkctl->ctl_sendsize; - if (kctl->recvbufsize == 0) + if (userkctl->ctl_recvsize == 0) userkctl->ctl_recvsize = CTL_RECVSIZE; kctl->recvbufsize = userkctl->ctl_recvsize;