aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin/flamegraph-record
diff options
context:
space:
mode:
authorKees Cook <[email protected]>2021-08-06 13:11:06 -0700
committerGreg Kroah-Hartman <[email protected]>2021-08-10 12:09:32 +0200
commitada0e6dbbb098350e0cb7fd32672ba4fd98500fc (patch)
treeae83b1f9aea42406f2c28ce27df12fe6e16e189e /tools/perf/scripts/python/bin/flamegraph-record
parent69c92a749b89a7654084d0afd774018008a8de49 (diff)
staging: rtl8192e: Avoid field-overflowing memcpy()
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. Split the 3 addr memcpy() into 3 memcpy() calls so the compiler doesn't think an overflowing memcpy() happens against the addr1 field (the neighbors are intended to be copied as well). rtllib_read_qos_param_element() copies a struct rtllib_info_element into a struct rtllib_qos_information_element, but is actually wanting to copy into the larger struct rtllib_qos_parameter_info (the contents of ac_params_record[] is later examined). Refactor the routine to perform centralized checks, and copy the entire contents directly (since the id and len members match the elementID and length members): struct rtllib_info_element { u8 id; u8 len; u8 data[]; } __packed; struct rtllib_qos_information_element { u8 elementID; u8 length; u8 qui[QOS_OUI_LEN]; u8 qui_type; u8 qui_subtype; u8 version; u8 ac_info; } __packed; struct rtllib_qos_parameter_info { struct rtllib_qos_information_element info_element; u8 reserved; struct rtllib_qos_ac_parameter ac_params_record[QOS_QUEUE_NUM]; } __packed; Cc: Darshan D V <[email protected]> Cc: Aditya Srivastava <[email protected]> Cc: [email protected] Cc: Larry Finger <[email protected]> Signed-off-by: Kees Cook <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin/flamegraph-record')
0 files changed, 0 insertions, 0 deletions