lkml.org 
[lkml]   [2020]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 230/255] USB: gadget: u_f: Unbreak offset calculation in VLAs
    Date
    From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

    commit bfd08d06d978d0304eb6f7855b548aa2cd1c5486 upstream.

    Inadvertently the commit b1cd1b65afba ("USB: gadget: u_f: add overflow checks
    to VLA macros") makes VLA macros to always return 0 due to different scope of
    two variables of the same name. Obviously we need to have only one.

    Fixes: b1cd1b65afba ("USB: gadget: u_f: add overflow checks to VLA macros")
    Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Brooke Basile <brookebasile@gmail.com>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20200826192119.56450-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/gadget/u_f.h | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/drivers/usb/gadget/u_f.h
    +++ b/drivers/usb/gadget/u_f.h
    @@ -25,9 +25,9 @@
    size_t offset = 0; \
    if (groupname##__next != SIZE_MAX) { \
    size_t align_mask = __alignof__(type) - 1; \
    - size_t offset = (groupname##__next + align_mask) \
    - & ~align_mask; \
    size_t size = array_size(n, sizeof(type)); \
    + offset = (groupname##__next + align_mask) & \
    + ~align_mask; \
    if (check_add_overflow(offset, size, \
    &groupname##__next)) { \
    groupname##__next = SIZE_MAX; \
    @@ -43,8 +43,8 @@
    size_t offset = 0; \
    if (groupname##__next != SIZE_MAX) { \
    size_t align_mask = __alignof__(type) - 1; \
    - size_t offset = (groupname##__next + align_mask) \
    - & ~align_mask; \
    + offset = (groupname##__next + align_mask) & \
    + ~align_mask; \
    if (check_add_overflow(offset, groupname##_##name##__sz,\
    &groupname##__next)) { \
    groupname##__next = SIZE_MAX; \

    \
     
     \ /
      Last update: 2020-09-01 17:55    [W:4.178 / U:0.768 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site