• Axel Rasmussen's avatar
    mm: userfaultfd: check for start + len overflow in validate_range · 2ef5d724
    Axel Rasmussen authored
    Most userfaultfd ioctls take a `start + len` range as an argument.  We
    have the validate_range helper to check that such ranges are valid. 
    However, some (but not all!) ioctls *also* check that `start + len`
    doesn't wrap around (overflow).
    
    Just check for this in validate_range.  This saves some repetitive code,
    and adds the check to some ioctls which weren't bothering to check for it
    before.
    
    [axelrasmussen@google.com: call validate_range() on the src range too]
      Link: https://lkml.kernel.org/r/20230714182932.2608735-1-axelrasmussen@google.com
    [axelrasmussen@google.com: fix src/dst validation]
      Link: https://lkml.kernel.org/r/20230810192128.1855570-1-axelrasmussen@google.com
    Link: https://lkml.kernel.org/r/20230707215540.2324998-3-axelrasmussen@google.comSigned-off-by: default avatarAxel Rasmussen <axelrasmussen@google.com>
    Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Brian Geffon <bgeffon@google.com>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Gaosheng Cui <cuigaosheng1@huawei.com>
    Cc: Huang, Ying <ying.huang@intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: James Houghton <jthoughton@google.com>
    Cc: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
    Cc: Jiaqi Yan <jiaqiyan@google.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
    Cc: Miaohe Lin <linmiaohe@huawei.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Mike Rapoport (IBM) <rppt@kernel.org>
    Cc: Muchun Song <muchun.song@linux.dev>
    Cc: Nadav Amit <namit@vmware.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
    Cc: Ryan Roberts <ryan.roberts@arm.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Suleiman Souhlal <suleiman@google.com>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: T.J. Alumbaugh <talumbau@google.com>
    Cc: Yu Zhao <yuzhao@google.com>
    Cc: ZhangPeng <zhangpeng362@huawei.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    2ef5d724
userfaultfd.c 57.2 KB