rpmsg: use struct_size over open coded arithmetic
authorMinghao Chi (CGEL ZTE) <chi.minghao@zte.com.cn>
Wed, 16 Feb 2022 03:07:20 +0000 (03:07 +0000)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Fri, 11 Mar 2022 20:24:55 +0000 (14:24 -0600)
Replace zero-length array with flexible-array member and make use
of the struct_size() helper in kzalloc(). For example:

struct glink_defer_cmd {
struct list_head node;

struct glink_msg msg;
u8 data[];
};

Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi (CGEL ZTE) <chi.minghao@zte.com.cn>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220216030720.1839503-1-chi.minghao@zte.com.cn
drivers/rpmsg/qcom_glink_native.c

index 1030cfa..f4f4e39 100644 (file)
@@ -792,7 +792,7 @@ static int qcom_glink_rx_defer(struct qcom_glink *glink, size_t extra)
                return -ENXIO;
        }
 
-       dcmd = kzalloc(sizeof(*dcmd) + extra, GFP_ATOMIC);
+       dcmd = kzalloc(struct_size(dcmd, data, extra), GFP_ATOMIC);
        if (!dcmd)
                return -ENOMEM;