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 63/64] iwlwifi: dbg_ini: Split memcpy() to avoid multi-field write
    Date
    To avoid a run-time false positive in the stricter FORTIFY_SOURCE
    memcpy() checks, split the memcpy() into the struct and the data.
    Additionally switch the data member to a flexible array to follow
    modern language conventions.

    Signed-off-by: Kees Cook <keescook@chromium.org>
    ---
    drivers/net/wireless/intel/iwlwifi/fw/file.h | 2 +-
    drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 3 ++-
    2 files changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/wireless/intel/iwlwifi/fw/file.h b/drivers/net/wireless/intel/iwlwifi/fw/file.h
    index 9a8c7b7a0816..226ccd3a6612 100644
    --- a/drivers/net/wireless/intel/iwlwifi/fw/file.h
    +++ b/drivers/net/wireless/intel/iwlwifi/fw/file.h
    @@ -116,7 +116,7 @@ enum iwl_ucode_tlv_type {
    struct iwl_ucode_tlv {
    __le32 type; /* see above */
    __le32 length; /* not including type/length fields */
    - u8 data[0];
    + u8 data[];
    };

    #define IWL_TLV_UCODE_MAGIC 0x0a4c5749
    diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
    index 0ddd255a8cc1..f4efddf3e3c3 100644
    --- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
    +++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
    @@ -71,7 +71,8 @@ static int iwl_dbg_tlv_add(const struct iwl_ucode_tlv *tlv,
    if (!node)
    return -ENOMEM;

    - memcpy(&node->tlv, tlv, sizeof(node->tlv) + len);
    + memcpy(&node->tlv, tlv, sizeof(node->tlv));
    + memcpy(node->tlv.data, tlv->data, len);
    list_add_tail(&node->list, list);

    return 0;
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-07-27 23:07    [W:4.494 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site