netipsec/key.c: use designated initializers for arrays

Also de-expand nitems() use in related asserts, and fix maxsize array
name in the assert message.

Sponsored by:	NVidia networking
This commit is contained in:
Konstantin Belousov 2021-08-03 04:02:04 +03:00
parent fcc7aabdca
commit 04d815f115

View File

@ -363,70 +363,70 @@ static struct mtx spacq_lock;
#define SPACQ_LOCK_ASSERT() mtx_assert(&spacq_lock, MA_OWNED) #define SPACQ_LOCK_ASSERT() mtx_assert(&spacq_lock, MA_OWNED)
static const int minsize[] = { static const int minsize[] = {
sizeof(struct sadb_msg), /* SADB_EXT_RESERVED */ [SADB_EXT_RESERVED] = sizeof(struct sadb_msg),
sizeof(struct sadb_sa), /* SADB_EXT_SA */ [SADB_EXT_SA] = sizeof(struct sadb_sa),
sizeof(struct sadb_lifetime), /* SADB_EXT_LIFETIME_CURRENT */ [SADB_EXT_LIFETIME_CURRENT] = sizeof(struct sadb_lifetime),
sizeof(struct sadb_lifetime), /* SADB_EXT_LIFETIME_HARD */ [SADB_EXT_LIFETIME_HARD] = sizeof(struct sadb_lifetime),
sizeof(struct sadb_lifetime), /* SADB_EXT_LIFETIME_SOFT */ [SADB_EXT_LIFETIME_SOFT] = sizeof(struct sadb_lifetime),
sizeof(struct sadb_address), /* SADB_EXT_ADDRESS_SRC */ [SADB_EXT_ADDRESS_SRC] = sizeof(struct sadb_address),
sizeof(struct sadb_address), /* SADB_EXT_ADDRESS_DST */ [SADB_EXT_ADDRESS_DST] = sizeof(struct sadb_address),
sizeof(struct sadb_address), /* SADB_EXT_ADDRESS_PROXY */ [SADB_EXT_ADDRESS_PROXY] = sizeof(struct sadb_address),
sizeof(struct sadb_key), /* SADB_EXT_KEY_AUTH */ [SADB_EXT_KEY_AUTH] = sizeof(struct sadb_key),
sizeof(struct sadb_key), /* SADB_EXT_KEY_ENCRYPT */ [SADB_EXT_KEY_ENCRYPT] = sizeof(struct sadb_key),
sizeof(struct sadb_ident), /* SADB_EXT_IDENTITY_SRC */ [SADB_EXT_IDENTITY_SRC] = sizeof(struct sadb_ident),
sizeof(struct sadb_ident), /* SADB_EXT_IDENTITY_DST */ [SADB_EXT_IDENTITY_DST] = sizeof(struct sadb_ident),
sizeof(struct sadb_sens), /* SADB_EXT_SENSITIVITY */ [SADB_EXT_SENSITIVITY] = sizeof(struct sadb_sens),
sizeof(struct sadb_prop), /* SADB_EXT_PROPOSAL */ [SADB_EXT_PROPOSAL] = sizeof(struct sadb_prop),
sizeof(struct sadb_supported), /* SADB_EXT_SUPPORTED_AUTH */ [SADB_EXT_SUPPORTED_AUTH] = sizeof(struct sadb_supported),
sizeof(struct sadb_supported), /* SADB_EXT_SUPPORTED_ENCRYPT */ [SADB_EXT_SUPPORTED_ENCRYPT] = sizeof(struct sadb_supported),
sizeof(struct sadb_spirange), /* SADB_EXT_SPIRANGE */ [SADB_EXT_SPIRANGE] = sizeof(struct sadb_spirange),
0, /* SADB_X_EXT_KMPRIVATE */ [SADB_X_EXT_KMPRIVATE] = 0,
sizeof(struct sadb_x_policy), /* SADB_X_EXT_POLICY */ [SADB_X_EXT_POLICY] = sizeof(struct sadb_x_policy),
sizeof(struct sadb_x_sa2), /* SADB_X_SA2 */ [SADB_X_EXT_SA2] = sizeof(struct sadb_x_sa2),
sizeof(struct sadb_x_nat_t_type),/* SADB_X_EXT_NAT_T_TYPE */ [SADB_X_EXT_NAT_T_TYPE] = sizeof(struct sadb_x_nat_t_type),
sizeof(struct sadb_x_nat_t_port),/* SADB_X_EXT_NAT_T_SPORT */ [SADB_X_EXT_NAT_T_SPORT] = sizeof(struct sadb_x_nat_t_port),
sizeof(struct sadb_x_nat_t_port),/* SADB_X_EXT_NAT_T_DPORT */ [SADB_X_EXT_NAT_T_DPORT] = sizeof(struct sadb_x_nat_t_port),
sizeof(struct sadb_address), /* SADB_X_EXT_NAT_T_OAI */ [SADB_X_EXT_NAT_T_OAI] = sizeof(struct sadb_address),
sizeof(struct sadb_address), /* SADB_X_EXT_NAT_T_OAR */ [SADB_X_EXT_NAT_T_OAR] = sizeof(struct sadb_address),
sizeof(struct sadb_x_nat_t_frag),/* SADB_X_EXT_NAT_T_FRAG */ [SADB_X_EXT_NAT_T_FRAG] = sizeof(struct sadb_x_nat_t_frag),
sizeof(struct sadb_x_sa_replay), /* SADB_X_EXT_SA_REPLAY */ [SADB_X_EXT_SA_REPLAY] = sizeof(struct sadb_x_sa_replay),
sizeof(struct sadb_address), /* SADB_X_EXT_NEW_ADDRESS_SRC */ [SADB_X_EXT_NEW_ADDRESS_SRC] = sizeof(struct sadb_address),
sizeof(struct sadb_address), /* SADB_X_EXT_NEW_ADDRESS_DST */ [SADB_X_EXT_NEW_ADDRESS_DST] = sizeof(struct sadb_address),
}; };
_Static_assert(sizeof(minsize)/sizeof(int) == SADB_EXT_MAX + 1, "minsize size mismatch"); _Static_assert(nitems(minsize) == SADB_EXT_MAX + 1, "minsize size mismatch");
static const int maxsize[] = { static const int maxsize[] = {
sizeof(struct sadb_msg), /* SADB_EXT_RESERVED */ [SADB_EXT_RESERVED] = sizeof(struct sadb_msg),
sizeof(struct sadb_sa), /* SADB_EXT_SA */ [SADB_EXT_SA] = sizeof(struct sadb_sa),
sizeof(struct sadb_lifetime), /* SADB_EXT_LIFETIME_CURRENT */ [SADB_EXT_LIFETIME_CURRENT] = sizeof(struct sadb_lifetime),
sizeof(struct sadb_lifetime), /* SADB_EXT_LIFETIME_HARD */ [SADB_EXT_LIFETIME_HARD] = sizeof(struct sadb_lifetime),
sizeof(struct sadb_lifetime), /* SADB_EXT_LIFETIME_SOFT */ [SADB_EXT_LIFETIME_SOFT] = sizeof(struct sadb_lifetime),
0, /* SADB_EXT_ADDRESS_SRC */ [SADB_EXT_ADDRESS_SRC] = 0,
0, /* SADB_EXT_ADDRESS_DST */ [SADB_EXT_ADDRESS_DST] = 0,
0, /* SADB_EXT_ADDRESS_PROXY */ [SADB_EXT_ADDRESS_PROXY] = 0,
0, /* SADB_EXT_KEY_AUTH */ [SADB_EXT_KEY_AUTH] = 0,
0, /* SADB_EXT_KEY_ENCRYPT */ [SADB_EXT_KEY_ENCRYPT] = 0,
0, /* SADB_EXT_IDENTITY_SRC */ [SADB_EXT_IDENTITY_SRC] = 0,
0, /* SADB_EXT_IDENTITY_DST */ [SADB_EXT_IDENTITY_DST] = 0,
0, /* SADB_EXT_SENSITIVITY */ [SADB_EXT_SENSITIVITY] = 0,
0, /* SADB_EXT_PROPOSAL */ [SADB_EXT_PROPOSAL] = 0,
0, /* SADB_EXT_SUPPORTED_AUTH */ [SADB_EXT_SUPPORTED_AUTH] = 0,
0, /* SADB_EXT_SUPPORTED_ENCRYPT */ [SADB_EXT_SUPPORTED_ENCRYPT] = 0,
sizeof(struct sadb_spirange), /* SADB_EXT_SPIRANGE */ [SADB_EXT_SPIRANGE] = sizeof(struct sadb_spirange),
0, /* SADB_X_EXT_KMPRIVATE */ [SADB_X_EXT_KMPRIVATE] = 0,
0, /* SADB_X_EXT_POLICY */ [SADB_X_EXT_POLICY] = 0,
sizeof(struct sadb_x_sa2), /* SADB_X_SA2 */ [SADB_X_EXT_SA2] = sizeof(struct sadb_x_sa2),
sizeof(struct sadb_x_nat_t_type),/* SADB_X_EXT_NAT_T_TYPE */ [SADB_X_EXT_NAT_T_TYPE] = sizeof(struct sadb_x_nat_t_type),
sizeof(struct sadb_x_nat_t_port),/* SADB_X_EXT_NAT_T_SPORT */ [SADB_X_EXT_NAT_T_SPORT] = sizeof(struct sadb_x_nat_t_port),
sizeof(struct sadb_x_nat_t_port),/* SADB_X_EXT_NAT_T_DPORT */ [SADB_X_EXT_NAT_T_DPORT] = sizeof(struct sadb_x_nat_t_port),
0, /* SADB_X_EXT_NAT_T_OAI */ [SADB_X_EXT_NAT_T_OAI] = 0,
0, /* SADB_X_EXT_NAT_T_OAR */ [SADB_X_EXT_NAT_T_OAR] = 0,
sizeof(struct sadb_x_nat_t_frag),/* SADB_X_EXT_NAT_T_FRAG */ [SADB_X_EXT_NAT_T_FRAG] = sizeof(struct sadb_x_nat_t_frag),
sizeof(struct sadb_x_sa_replay), /* SADB_X_EXT_SA_REPLAY */ [SADB_X_EXT_SA_REPLAY] = sizeof(struct sadb_x_sa_replay),
0, /* SADB_X_EXT_NEW_ADDRESS_SRC */ [SADB_X_EXT_NEW_ADDRESS_SRC] = 0,
0, /* SADB_X_EXT_NEW_ADDRESS_DST */ [SADB_X_EXT_NEW_ADDRESS_DST] = 0,
}; };
_Static_assert(sizeof(maxsize)/sizeof(int) == SADB_EXT_MAX + 1, "minsize size mismatch"); _Static_assert(nitems(maxsize) == SADB_EXT_MAX + 1, "maxsize size mismatch");
/* /*
* Internal values for SA flags: * Internal values for SA flags:
@ -7748,30 +7748,30 @@ key_promisc(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp)
} }
static int (*key_typesw[])(struct socket *, struct mbuf *, static int (*key_typesw[])(struct socket *, struct mbuf *,
const struct sadb_msghdr *) = { const struct sadb_msghdr *) = {
NULL, /* SADB_RESERVED */ [SADB_RESERVED] = NULL,
key_getspi, /* SADB_GETSPI */ [SADB_GETSPI] = key_getspi,
key_update, /* SADB_UPDATE */ [SADB_UPDATE] = key_update,
key_add, /* SADB_ADD */ [SADB_ADD] = key_add,
key_delete, /* SADB_DELETE */ [SADB_DELETE] = key_delete,
key_get, /* SADB_GET */ [SADB_GET] = key_get,
key_acquire2, /* SADB_ACQUIRE */ [SADB_ACQUIRE] = key_acquire2,
key_register, /* SADB_REGISTER */ [SADB_REGISTER] = key_register,
NULL, /* SADB_EXPIRE */ [SADB_EXPIRE] = NULL,
key_flush, /* SADB_FLUSH */ [SADB_FLUSH] = key_flush,
key_dump, /* SADB_DUMP */ [SADB_DUMP] = key_dump,
key_promisc, /* SADB_X_PROMISC */ [SADB_X_PROMISC] = key_promisc,
NULL, /* SADB_X_PCHANGE */ [SADB_X_PCHANGE] = NULL,
key_spdadd, /* SADB_X_SPDUPDATE */ [SADB_X_SPDUPDATE] = key_spdadd,
key_spdadd, /* SADB_X_SPDADD */ [SADB_X_SPDADD] = key_spdadd,
key_spddelete, /* SADB_X_SPDDELETE */ [SADB_X_SPDDELETE] = key_spddelete,
key_spdget, /* SADB_X_SPDGET */ [SADB_X_SPDGET] = key_spdget,
NULL, /* SADB_X_SPDACQUIRE */ [SADB_X_SPDACQUIRE] = NULL,
key_spddump, /* SADB_X_SPDDUMP */ [SADB_X_SPDDUMP] = key_spddump,
key_spdflush, /* SADB_X_SPDFLUSH */ [SADB_X_SPDFLUSH] = key_spdflush,
key_spdadd, /* SADB_X_SPDSETIDX */ [SADB_X_SPDSETIDX] = key_spdadd,
NULL, /* SADB_X_SPDEXPIRE */ [SADB_X_SPDEXPIRE] = NULL,
key_spddelete2, /* SADB_X_SPDDELETE2 */ [SADB_X_SPDDELETE2] = key_spddelete2,
}; };
/* /*