netfilter: nft_hash: get random bytes if seed is not specified
If the user doesn't specify a seed, generate one at configuration time. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
08733a0cb7
commit
f86dab3aa6
|
@ -57,7 +57,6 @@ static int nft_hash_init(const struct nft_ctx *ctx,
|
|||
if (!tb[NFTA_HASH_SREG] ||
|
||||
!tb[NFTA_HASH_DREG] ||
|
||||
!tb[NFTA_HASH_LEN] ||
|
||||
!tb[NFTA_HASH_SEED] ||
|
||||
!tb[NFTA_HASH_MODULUS])
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -80,7 +79,10 @@ static int nft_hash_init(const struct nft_ctx *ctx,
|
|||
if (priv->offset + priv->modulus - 1 < priv->offset)
|
||||
return -EOVERFLOW;
|
||||
|
||||
priv->seed = ntohl(nla_get_be32(tb[NFTA_HASH_SEED]));
|
||||
if (tb[NFTA_HASH_SEED])
|
||||
priv->seed = ntohl(nla_get_be32(tb[NFTA_HASH_SEED]));
|
||||
else
|
||||
get_random_bytes(&priv->seed, sizeof(priv->seed));
|
||||
|
||||
return nft_validate_register_load(priv->sreg, len) &&
|
||||
nft_validate_register_store(ctx, priv->dreg, NULL,
|
||||
|
|
Loading…
Reference in a new issue