6f2f49ae4c
There is a regular need in the kernel to provide a way to declare having a dynamically sized set of trailing elements in a structure. Kernel code should always use “flexible array members”[1] for these cases. The older style of one-element or zero-length arrays should no longer be used[2]. Use flexible-array members in struct hfi_msg_sys_property_info_pkt and hfi_msg_session_property_info_pkt instead of one-element arrays, and refactor the code accordingly. Also, this helps with the ongoing efforts to enable -Warray-bounds by fixing the following warnings: CC [M] drivers/media/platform/qcom/venus/hfi_msgs.o drivers/media/platform/qcom/venus/hfi_msgs.c: In function ‘hfi_sys_property_info’: drivers/media/platform/qcom/venus/hfi_msgs.c:246:35: warning: array subscript 1 is above array bounds of ‘u32[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds] 246 | if (req_bytes < 128 || !pkt->data[1] || pkt->num_properties > 1) | ~~~~~~~~~^~~ drivers/media/platform/qcom/venus/hfi_msgs.c: In function ‘hfi_session_prop_info’: drivers/media/platform/qcom/venus/hfi_msgs.c:342:62: warning: array subscript 1 is above array bounds of ‘u32[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds] 342 | if (!req_bytes || req_bytes % sizeof(*buf_req) || !pkt->data[1]) | ~~~~~~~~~^~~ [1] https://en.wikipedia.org/wiki/Flexible_array_member [2] https://www.kernel.org/doc/html/v5.9/process/deprecated.html#zero-length-and-one-element-arrays Link: https://github.com/KSPP/linux/issues/79 Link: https://github.com/KSPP/linux/issues/109 Co-developed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
||
---|---|---|
.. | ||
allegro-dvt | ||
am437x | ||
atmel | ||
cadence | ||
coda | ||
davinci | ||
exynos4-is | ||
exynos-gsc | ||
imx-jpeg | ||
marvell-ccic | ||
meson/ge2d | ||
mtk-jpeg | ||
mtk-mdp | ||
mtk-vcodec | ||
mtk-vpu | ||
omap | ||
omap3isp | ||
qcom | ||
rcar-vin | ||
rockchip | ||
s3c-camif | ||
s5p-g2d | ||
s5p-jpeg | ||
s5p-mfc | ||
sti | ||
stm32 | ||
sunxi | ||
ti-vpe | ||
vsp1 | ||
xilinx | ||
aspeed-video.c | ||
fsl-viu.c | ||
imx-pxp.c | ||
imx-pxp.h | ||
Kconfig | ||
m2m-deinterlace.c | ||
Makefile | ||
mx2_emmaprp.c | ||
pxa_camera.c | ||
rcar_drif.c | ||
rcar_fdp1.c | ||
rcar_jpu.c | ||
rcar-fcp.c | ||
renesas-ceu.c | ||
sh_vou.c | ||
via-camera.c | ||
via-camera.h | ||
video-mux.c |