Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

io_uring/kbuf: use mem_is_zero()

Make use of mem_is_zero() for reserved fields checking.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/11fe27b7a831329bcdb4ea087317ef123ba7c171.1747150490.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Pavel Begunkov and committed by
Jens Axboe
17248490 475a8d30

+4 -10
+4 -10
io_uring/kbuf.c
··· 602 602 603 603 if (copy_from_user(&reg, arg, sizeof(reg))) 604 604 return -EFAULT; 605 - 606 - if (reg.resv[0] || reg.resv[1] || reg.resv[2]) 605 + if (!mem_is_zero(reg.resv, sizeof(reg.resv))) 607 606 return -EINVAL; 608 607 if (reg.flags & ~(IOU_PBUF_RING_MMAP | IOU_PBUF_RING_INC)) 609 608 return -EINVAL; ··· 678 679 679 680 if (copy_from_user(&reg, arg, sizeof(reg))) 680 681 return -EFAULT; 681 - if (reg.resv[0] || reg.resv[1] || reg.resv[2]) 682 - return -EINVAL; 683 - if (reg.flags) 682 + if (!mem_is_zero(reg.resv, sizeof(reg.resv)) || reg.flags) 684 683 return -EINVAL; 685 684 686 685 bl = io_buffer_get_list(ctx, reg.bgid); ··· 698 701 { 699 702 struct io_uring_buf_status buf_status; 700 703 struct io_buffer_list *bl; 701 - int i; 702 704 703 705 if (copy_from_user(&buf_status, arg, sizeof(buf_status))) 704 706 return -EFAULT; 705 - 706 - for (i = 0; i < ARRAY_SIZE(buf_status.resv); i++) 707 - if (buf_status.resv[i]) 708 - return -EINVAL; 707 + if (!mem_is_zero(buf_status.resv, sizeof(buf_status.resv))) 708 + return -EINVAL; 709 709 710 710 bl = io_buffer_get_list(ctx, buf_status.buf_group); 711 711 if (!bl)