Hi Christian,

> Subject: Re: [PATCH] udmabuf: fix a buf size overflow issue during udmabuf
> creation
> 
> Am 25.03.25 um 07:23 schrieb Kasireddy, Vivek:
> > Hi Christian,
> >
> >> Am 21.03.25 um 17:41 schrieb Xiaogang.Chen:
> >>> From: Xiaogang Chen <xiaogang.c...@amd.com>
> >>>
> >>> by casting size_limit_mb to u64  when calculate pglimit.
> >>>
> >>> Signed-off-by: Xiaogang Chen<xiaogang.c...@amd.com>
> >> Reviewed-by: Christian König <christian.koe...@amd.com>
> >>
> >> If nobody objects I'm going to push that to drm-misc-fixes.
> > No objection but I wish the author would have added more details in the
> commit
> > message particularly the value they have used to trigger the overflow. I
> guess
> > Xiaogang can still comment here and briefly describe the exact use-
> case/test-case
> > they are running where they encountered this issue.
> 
> Isn't that obvious? At least it was for me.
> 
> As soon as you have a value larger than 4095 the 32bit multiplication
> overflows, resulting in incorrectly limiting the buffer size.
Right, that part makes sense. I was mostly curious about why or how they
were using such a large buffer (use-case details). 

Thanks,
Vivek

> 
> Regards,
> Christian.
> 
> >
> > Thanks,
> > Vivek
> >
> >> Regards,
> >> Christian.
> >>
> >>> ---
> >>>  drivers/dma-buf/udmabuf.c | 2 +-
> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
> >>> index 8ce1f074c2d3..e99e3a65a470 100644
> >>> --- a/drivers/dma-buf/udmabuf.c
> >>> +++ b/drivers/dma-buf/udmabuf.c
> >>> @@ -398,7 +398,7 @@ static long udmabuf_create(struct miscdevice
> >> *device,
> >>>   if (!ubuf)
> >>>           return -ENOMEM;
> >>>
> >>> - pglimit = (size_limit_mb * 1024 * 1024) >> PAGE_SHIFT;
> >>> + pglimit = ((u64)size_limit_mb * 1024 * 1024) >> PAGE_SHIFT;
> >>>   for (i = 0; i < head->count; i++) {
> >>>           pgoff_t subpgcnt;
> >>>

Reply via email to