On Tue, Feb 14, 2023 at 01:24:26PM -0800, Elliot Berman wrote: > + case GH_VM_SET_DTB_CONFIG: { > + struct gh_vm_dtb_config dtb_config; > + > + if (copy_from_user(&dtb_config, argp, sizeof(dtb_config))) > + return -EFAULT; > + > + dtb_config.size = PAGE_ALIGN(dtb_config.size); > + ghvm->dtb_config = dtb_config; Do you really mean to copy this tiny structure twice (once from userspace and the second time off of the stack)? If so, why? And where are the values of the structure checked for validity? Can any 64bit value work for size and "gpa"? thanks, greg k-h