tipc: fix clang warning in tipc/node.c

When building tipc with clang, the following warning is found:

tipc
    CC       bearer.o
    CC       cmdl.o
    CC       link.o
    CC       media.o
    CC       misc.o
    CC       msg.o
    CC       nametable.o
    CC       node.o
node.c:182:24: warning: field 'key' with variable sized type 'struct tipc_aead_key' not at the end of a struct or class is a GNU extension [-Wgnu-variable-sized-type-not-at-end]
                struct tipc_aead_key key;

This commit fixes it by putting the memory area allocated for the user
input key along with the variable-sized 'key' structure in the 'union'
form instead.

Fixes: 24bee3bf97 ("tipc: add new commands to set TIPC AEAD key")
Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
Tuong Lien 2019-12-30 10:03:33 +07:00 committed by Stephen Hemminger
parent f8bebea915
commit d5391e186f
1 changed files with 4 additions and 2 deletions

View File

@ -179,8 +179,10 @@ static int cmd_node_set_key(struct nlmsghdr *nlh, const struct cmd *cmd,
struct cmdl *cmdl, void *data)
{
struct {
struct tipc_aead_key key;
char mem[TIPC_AEAD_KEYLEN_MAX + 1];
union {
struct tipc_aead_key key;
char mem[TIPC_AEAD_KEY_SIZE_MAX];
};
} input = {};
struct opt opts[] = {
{ "algname", OPT_KEYVAL, NULL },