lkml.org 
[lkml]   [2019]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v17 13/15] tee/shm, arm64: untag user pointers in tee_shm_register
    From
    This patch is a part of a series that extends arm64 kernel ABI to allow to
    pass tagged user pointers (with the top byte set to something else other
    than 0x00) as syscall arguments.

    tee_shm_register()->optee_shm_unregister()->check_mem_type() uses provided
    user pointers for vma lookups (via __check_mem_type()), which can only by
    done with untagged pointers.

    Untag user pointers in this function.

    Reviewed-by: Kees Cook <keescook@chromium.org>
    Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    ---
    drivers/tee/tee_shm.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c
    index 2da026fd12c9..09ddcd06c715 100644
    --- a/drivers/tee/tee_shm.c
    +++ b/drivers/tee/tee_shm.c
    @@ -254,6 +254,7 @@ struct tee_shm *tee_shm_register(struct tee_context *ctx, unsigned long addr,
    shm->teedev = teedev;
    shm->ctx = ctx;
    shm->id = -1;
    + addr = untagged_addr(addr);
    start = rounddown(addr, PAGE_SIZE);
    shm->offset = addr - start;
    shm->size = length;
    --
    2.22.0.rc2.383.gf4fbbf30c2-goog
    \
     
     \ /
      Last update: 2019-06-12 13:44    [W:4.273 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site