lkml.org 
[lkml]   [2024]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 320/437] drivers/net/brocade-bnad: ensure the copied buf is NULL terminated
    Date
    From: Bui Quang Minh <minhquangbui99@gmail.com>

    Currently, we allocate a nbytes-sized kernel buffer and copy nbytes from
    userspace to that buffer. Later, we use scanf on this buffer but we don't
    ensure that the string is terminated inside the buffer, this can lead to
    OOB read when using scanf. Fix this issue by using memdup_user_nul instead
    of memdup_user.

    Fixes: 7afc5dbde091 ("bna: Add debugfs interface.")
    Signed-off-by: Bui Quang Minh <minhquangbui99@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    ---
    drivers/net/ethernet/brocade/bna/bnad_debugfs.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
    index 7246e13dd559..97291bfbeea5 100644
    --- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
    +++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
    @@ -312,7 +312,7 @@ bnad_debugfs_write_regrd(struct file *file, const char __user *buf,
    void *kern_buf;

    /* Copy the user space buf */
    - kern_buf = memdup_user(buf, nbytes);
    + kern_buf = memdup_user_nul(buf, nbytes);
    if (IS_ERR(kern_buf))
    return PTR_ERR(kern_buf);

    @@ -372,7 +372,7 @@ bnad_debugfs_write_regwr(struct file *file, const char __user *buf,
    void *kern_buf;

    /* Copy the user space buf */
    - kern_buf = memdup_user(buf, nbytes);
    + kern_buf = memdup_user_nul(buf, nbytes);
    if (IS_ERR(kern_buf))
    return PTR_ERR(kern_buf);

    --
    2.43.0

    \
     
     \ /
      Last update: 2024-05-27 16:36    [W:2.275 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site