[PATCH 0/3 v2] staging: rtl*: Check for NULL header value

From: Kees Cook
Date: Fri Jan 14 2022 - 23:25:01 EST


Hi,

When building with -Warray-bounds, the following warning is emitted:

In file included from ./include/linux/string.h:253,
from ./arch/x86/include/asm/page_32.h:22,
from ./arch/x86/include/asm/page.h:14,
from ./arch/x86/include/asm/thread_info.h:12,
from ./include/linux/thread_info.h:60,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:78,
from ./include/linux/rcupdate.h:27,
from ./include/linux/rculist.h:11,
from ./include/linux/sched/signal.h:5,
from ./drivers/staging/rtl8723bs/include/drv_types.h:17,
from drivers/staging/rtl8723bs/core/rtw_recv.c:7:
In function 'memcpy',
inlined from 'wlanhdr_to_ethhdr' at drivers/staging/rtl8723bs/core/rtw_recv.c:1554:2:
./include/linux/fortify-string.h:41:33: warning: '__builtin_memcpy' offset [0, 5] is out of the bounds [0, 0] [-Warray-bounds]
41 | #define __underlying_memcpy __builtin_memcpy
| ^

This is due to various paths to the memcpy() where the compile could
see the destination buffer having a NULL value. This series fixes this
by both eliminating cases where NULL returns were impossible and adding
missing NULL checks where values were possible.

Thanks!

-Kees

v1: https://lore.kernel.org/lkml/20220113002001.3498383-1-keescook@xxxxxxxxxxxx/
v2:
- drop get_recvframe_data()
- add missing NULL checks to r8188eu and rtl8723bs (already present in rtl8712)

Kees Cook (3):
staging: r8188eu: Drop get_recvframe_data()
staging: rtl8723bs: Drop get_recvframe_data()
staging: rtl8712: Drop get_recvframe_data()

drivers/staging/r8188eu/core/rtw_recv.c | 6 +++++-
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 4 +---
drivers/staging/r8188eu/include/rtw_recv.h | 9 ---------
drivers/staging/rtl8712/rtl871x_recv.c | 4 ++--
drivers/staging/rtl8712/rtl871x_recv.h | 8 --------
drivers/staging/rtl8723bs/core/rtw_recv.c | 11 ++++++++---
drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c | 3 +--
drivers/staging/rtl8723bs/include/rtw_recv.h | 11 -----------
8 files changed, 17 insertions(+), 39 deletions(-)

--
2.30.2