Re: [PATCH] lib: fix variable-length array declarations in hci structures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Peter,

On Tue, Aug 31, 2021 at 9:30 AM Peter A. Bigot <pab@xxxxxxxxxxx> wrote:
>
> Use of zero as the size for arrays as the last element of a structure
> is a GNU C extension, which as of GCC 10 produces diagnostics when
> values in the extended array are referenced.  Switch to the C99
> standard idiom for flexible array members, already in use in a few
> other headers.
>
> Signed-off-by: Peter A. Bigot <pab@xxxxxxxxxxx>
> ---
>  lib/hci.h | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/lib/hci.h b/lib/hci.h
> index 3382b87bf..a61568bce 100644
> --- a/lib/hci.h
> +++ b/lib/hci.h
> @@ -729,7 +729,7 @@ typedef struct {
>  typedef struct {
>         uint8_t         flt_type;
>         uint8_t         cond_type;
> -       uint8_t         condition[0];
> +       uint8_t         condition[];
>  } __attribute__ ((packed)) set_event_flt_cp;
>  #define SET_EVENT_FLT_CP_SIZE 2
>
> @@ -2135,7 +2135,7 @@ typedef struct {
>  #define EVT_LE_META_EVENT      0x3E
>  typedef struct {
>         uint8_t         subevent;
> -       uint8_t         data[0];
> +       uint8_t         data[];
>  } __attribute__ ((packed)) evt_le_meta_event;
>  #define EVT_LE_META_EVENT_SIZE 1
>
> @@ -2159,7 +2159,7 @@ typedef struct {
>         uint8_t         bdaddr_type;
>         bdaddr_t        bdaddr;
>         uint8_t         length;
> -       uint8_t         data[0];
> +       uint8_t         data[];
>  } __attribute__ ((packed)) le_advertising_info;
>  #define LE_ADVERTISING_INFO_SIZE 9
>
> @@ -2246,7 +2246,7 @@ typedef struct {
>  typedef struct {
>         uint16_t                total_num_blocks;
>         uint8_t                 num_handles;
> -       cmplt_handle            handles[0];
> +       cmplt_handle            handles[];
>  }  __attribute__ ((packed)) evt_num_completed_blocks;
>
>  #define EVT_AMP_STATUS_CHANGE                  0x4D
> @@ -2264,7 +2264,7 @@ typedef struct {
>  #define EVT_STACK_INTERNAL             0xFD
>  typedef struct {
>         uint16_t        type;
> -       uint8_t         data[0];
> +       uint8_t         data[];
>  } __attribute__ ((packed)) evt_stack_internal;
>  #define EVT_STACK_INTERNAL_SIZE 2
>
> @@ -2407,19 +2407,19 @@ struct hci_dev_req {
>
>  struct hci_dev_list_req {
>         uint16_t dev_num;
> -       struct hci_dev_req dev_req[0];  /* hci_dev_req structures */
> +       struct hci_dev_req dev_req[];   /* hci_dev_req structures */
>  };
>
>  struct hci_conn_list_req {
>         uint16_t dev_id;
>         uint16_t conn_num;
> -       struct hci_conn_info conn_info[0];
> +       struct hci_conn_info conn_info[];
>  };
>
>  struct hci_conn_info_req {
>         bdaddr_t bdaddr;
>         uint8_t  type;
> -       struct hci_conn_info conn_info[0];
> +       struct hci_conn_info conn_info[];
>  };
>
>  struct hci_auth_info_req {
> --
> 2.25.1

Applied, thanks.

-- 
Luiz Augusto von Dentz



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux