staging: r8188eu: Replace zero-length array with flexible-array member
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 29 Sep 2021 19:36:58 +0000 (14:36 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 Oct 2021 10:28:48 +0000 (12:28 +0200)
One-element and zero-length arrays are deprecated and should be
replaced with flexible-array members[1].

Replace zero-length array with flexible-array member and make use
of the struct_size() helper in kmalloc().

[1] https://www.kernel.org/doc/html/v5.10/process/deprecated.html#zero-length-and-one-element-arrays

Link: https://github.com/KSPP/linux/issues/78
Link: https://github.com/KSPP/linux/issues/160
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20210929193658.GA339070@embeddedor
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/include/osdep_service.h
drivers/staging/r8188eu/os_dep/osdep_service.c

index da85a9681c4a2fcd6815d1a24924a7468482f619..4622ce400e41a6457efbbbfce2c6fa19cc90a896 100644 (file)
@@ -289,7 +289,7 @@ struct rtw_cbuf {
        u32 write;
        u32 read;
        u32 size;
-       void *bufs[0];
+       void *bufs[];
 };
 
 bool rtw_cbuf_empty(struct rtw_cbuf *cbuf);
index 002c75f167255ae23a801ee3bf50fd38c41c0ab9..d7d03c1417fdce7d502aedc8ba9341ec470fcfbe 100644 (file)
@@ -262,7 +262,7 @@ struct rtw_cbuf *rtw_cbuf_alloc(u32 size)
 {
        struct rtw_cbuf *cbuf;
 
-       cbuf = kmalloc(sizeof(*cbuf) + sizeof(void *) * size, GFP_KERNEL);
+       cbuf = kmalloc(struct_size(cbuf, bufs, size), GFP_KERNEL);
 
        if (cbuf) {
                cbuf->write = 0;