lkml.org 
[lkml]   [2021]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 47/64] btrfs: Use memset_after() to clear end of struct
    Date
    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memset(), avoid intentionally writing across
    neighboring fields.

    Use memset_after() so memset() doesn't get confused about writing
    beyond the destination member that is intended to be the starting point
    of zeroing through the end of the struct.

    Signed-off-by: Kees Cook <keescook@chromium.org>
    ---
    fs/btrfs/root-tree.c | 5 +----
    1 file changed, 1 insertion(+), 4 deletions(-)

    diff --git a/fs/btrfs/root-tree.c b/fs/btrfs/root-tree.c
    index 702dc5441f03..ec9e78f65fca 100644
    --- a/fs/btrfs/root-tree.c
    +++ b/fs/btrfs/root-tree.c
    @@ -39,10 +39,7 @@ static void btrfs_read_root_item(struct extent_buffer *eb, int slot,
    need_reset = 1;
    }
    if (need_reset) {
    - memset(&item->generation_v2, 0,
    - sizeof(*item) - offsetof(struct btrfs_root_item,
    - generation_v2));
    -
    + memset_after(item, 0, level);
    generate_random_guid(item->uuid);
    }
    }
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-07-27 23:02    [W:2.917 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site