Am 08.04.25 um 11:39 schrieb Fedor Pchelkin: > On Tue, 08. Apr 11:26, Christian König wrote: >> Am 08.04.25 um 11:17 schrieb Denis Arefev: >>> The user can set any value to the variable ‘bo_number’, via the ioctl >>> command DRM_IOCTL_AMDGPU_BO_LIST. This will affect the arithmetic >>> expression ‘in->bo_number * in->bo_info_size’, which is prone to >>> overflow. Add a valid value check. >> As far as I can see that is already checked by kvmalloc_array(). >> >> So adding this additional check manually is completely superfluous. > Note that in->bo_number is of type 'u32' while kvmalloc_array() checks for > an overflow in 'size_t', usually 64-bit. > > So it looks possible to pass some large 32-bit number, then multiply it by > (comparatively small) in->bo_info_size and still remain in 64-bit bounds. > > And later that would likely result in a WARNING in > > void *__kvmalloc_node_noprof(DECL_BUCKET_PARAMS(size, b), gfp_t flags, int > node) > { > ... > /* Don't even allow crazy sizes */ > if (unlikely(size > INT_MAX)) { > WARN_ON_ONCE(!(flags & __GFP_NOWARN)); > return NULL; > } > > But the commit description lacks such details, I admit.
Yeah, so what? I'm perfectly aware that this can result in a warning, but that is just not something worth fixing. Christian.