On 19/06/24 21:42, Javier Carrasco wrote:
Use the struct_size macro to calculate the size of the pkt, which
includes a trailing flexible array.

Suggested-by: Nathan Chancellor <nat...@kernel.org>
Signed-off-by: Javier Carrasco <javier.carrasco.c...@gmail.com>

Reviewed-by: Gustavo A. R. Silva <gustavo...@kernel.org>

Thanks
--
Gustavo

---
  drivers/usb/serial/garmin_gps.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c
index 57df6ad183ff..6d6ec7eed87c 100644
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
@@ -267,8 +267,7 @@ static int pkt_add(struct garmin_data *garmin_data_p,
/* process only packets containing data ... */
        if (data_length) {
-               pkt = kmalloc(sizeof(struct garmin_packet)+data_length,
-                                                               GFP_ATOMIC);
+               pkt = kmalloc(struct_size(pkt, data, data_length), GFP_ATOMIC);
                if (!pkt)
                        return 0;

Reply via email to