staging: rtl8723bs: Avoid field-overflowing memcpy()
authorKees Cook <keescook@chromium.org>
Fri, 6 Aug 2021 20:14:22 +0000 (13:14 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 10 Aug 2021 10:09:37 +0000 (12:09 +0200)
In preparation for FORTIFY_SOURCE performing compile-time and run-time
field bounds checking for memcpy(), memmove(), and memset(), avoid
intentionally writing across neighboring fields.

Adjust memcpy() destination to be the named structure itself, rather than
the first member, allowing memcpy() to correctly reason about the size.

"objdump -d" shows no object code changes.

Cc: Ross Schmidt <ross.schm.dev@gmail.com>
Cc: Joe Perches <joe@perches.com>
Cc: devel@driverdev.osuosl.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210806201422.2871679-1-keescook@chromium.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723bs/core/rtw_mlme.c

index 5ed13bf765d25fc36f0a6d3e01c52a6207b4c150..e0cee51224ff77180e40352e79827a2117e21f82 100644 (file)
@@ -2389,7 +2389,7 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_
        }
 
        /* fill default supported_mcs_set */
-       memcpy(ht_capie.mcs.rx_mask, pmlmeext->default_supported_mcs_set, 16);
+       memcpy(&ht_capie.mcs, pmlmeext->default_supported_mcs_set, 16);
 
        /* update default supported_mcs_set */
        rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));